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
```