🐾LuoLuo Wiki
Obsidian 知识管理

Dataview 数据查询

用 SQL-like 语法查询你的笔记库

Dataview 是 Obsidian 最强大的插件之一,让你用类似 SQL 的语法查询笔记,生成动态列表和表格。

安装

社区插件搜索 "Dataview" → 安装 → 启用。

四种查询类型

LIST — 列表

```dataview
LIST
FROM #读书笔记
WHERE status = "done"
SORT rating DESC
```

TABLE — 表格

```dataview
TABLE author, rating, created
FROM #读书笔记
SORT created DESC
```

TASK — 任务

```dataview
TASK
FROM #项目
WHERE !completed
```

CALENDAR — 日历

```dataview
CALENDAR created
FROM "日记"
```

DQL 查询语法

完整结构:

[查询类型] [字段]
FROM [来源]
WHERE [条件]
SORT [排序]
GROUP BY [分组]
FLATTEN [展开]
LIMIT [限制数量]

FROM 来源

FROM #标签              -- 按标签
FROM "文件夹路径"       -- 按文件夹
FROM [[某条笔记]]       -- 链接到某条笔记的所有笔记
FROM outgoing([[笔记]]) -- 某条笔记链接出去的笔记

WHERE 条件

WHERE status = "done"
WHERE rating >= 4
WHERE created >= date("2026-04-01")
WHERE contains(tags, "认知科学")
WHERE file.name = "日记"
WHERE !completed          -- 未完成的任务

SORT 排序

SORT created DESC         -- 按创建日期降序
SORT rating ASC           -- 按评分升序
SORT file.name            -- 按文件名

GROUP BY 分组

```dataview
TABLE rows.file.link
FROM #读书笔记
GROUP BY author
```

隐式字段

每条笔记自动拥有的字段:

字段说明
file.name文件名(不含扩展名)
file.path完整路径
file.folder所在文件夹
file.size文件大小
file.ctime创建时间
file.mtime修改时间
file.tags所有标签
file.inlinks链入的笔记
file.outlinks链出的笔记
file.link可点击的链接

内联查询

在正文中嵌入单个值:

今天是 `= date(today)`

这个 Vault 有 `= length(filter(file.tasks, (t) => !t.completed))` 个未完成任务。

这条笔记创建于 `= this.created`

实战示例

最近修改的笔记

```dataview
TABLE file.mtime as "修改时间"
SORT file.mtime DESC
LIMIT 10
```

项目看板

```dataview
TABLE status, due
FROM #项目
WHERE status != "archive"
SORT due ASC
```

孤立笔记

```dataview
LIST
WHERE length(file.inlinks) = 0
  AND length(file.outlinks) = 0
  AND !contains(file.path, "Templates")
```

每日任务汇总

```dataview
TASK
WHERE !completed
  AND due <= date(today)
SORT due ASC
```

On this page