Obsidian Dataview 新手到高手:打造你的个人知识数据库
看到“Dataview”这仨字,我脑子里直接浮现一个画面:原本一堆散落在笔记本角落的 Markdown 文件,突然排队变阵、自己站成一个整齐的数据库表格,还会动、能排序、能筛选,简直像《哈利波特》里的活地图一样神奇。最重要的是——这一切都在你本地 Vault 里安安静静地运行,没人打扰,也不怕隐私泄露,稳得一批。
我用 Obsidian 也有一段时间了,说实话最早那会儿写笔记还真就是“写而已”,各种文本堆在文件夹里,看起来挺满足的,但真要找资料、查记录,基本就靠搜索 + 眼力,稍微一多就全乱套。直到某天被一篇安利种草了 Dataview,我内心只剩一个字:卧槽。
Dataview 把 Obsidian 从一个“高级记事本”直接升级成了自建数据库系统,你可以查询、分析、分组、自动生成任务清单,哪怕你一点代码不会,也能用最基础的 DQL 语法搞出堪比“Excel 多维透视表”的效果。会点 JavaScript?DataviewJS 直接送你起飞,在 Obsidian 里搞统计报表、生成时间轴、制作互动式仪表板,统统不在话下。
接下来,咱就从最基础的介绍,到下载安装、使用技巧、实际案例,一站式带你玩转 Dataview,把你的笔记真正变成一个“能思考”的知识系统。
🧠 Dataview 是什么?
用一句人话说:Dataview 就是让你的笔记动起来的插件。
它不是用来写笔记的,它是用来读你写的笔记的,然后帮你提取有用信息,以各种方式展示出来:表格、列表、任务、分组、可视化、脚本化……你把它当“笔记搜索引擎 + 报表工具 + 数据中心”理解也不为过。
它能干嘛?
是不是有点像 Notion 的数据库视图?但这可是在 Obsidian 里实现的,数据100%离线、本地可控、自由度暴击高。
🏷️ 元数据写法:Dataview 的“食材”
Dataview 再强大,也得靠你的笔记里有“食材”才能炒菜,而它的“食材”就是元数据(metadata)。
📁 YAML Frontmatter
写在文件头部的三道 --- 之间:
---
title: The Witcher 3
time-played: 120
rating: 9.8
genre: CRPG
---
优点:
规范、结构化 Dataview 识别度100% 特别适合项目、书籍、游戏这类“结构清晰”的笔记
✏️ 行内元数据(Inline Fields)
直接写在正文里:
Time Played:: 120
Rating:: 9.8
Genre:: CRPG
优点:
灵活、快速、可嵌在笔记内容中 更加“人类可读”,不影响笔记排版
🧠 小建议:写项目、书单、游戏等要分析的笔记,就用 YAML;写灵感笔记、日常记录等轻量的,就用行内元数据,混搭最舒服。
🛠️ 安装 Dataview 插件
这一步不急,我知道你还在激情上头阶段,不过记下来,晚点动手照着来就行。
如果你无法在线安装插件,别担心,我已经把热门插件下载好了 点击下方公众号,回复关键字:Obsidian,获取Obsidian资料合集。
(注意,这个步骤别急着开头就做,先把功能摸透更有动力)
📥 安装步骤
打开 Obsidian 设置 → “社区插件” 启用“安全模式” 点击“浏览”按钮,搜索 Dataview找到后点击“安装”→ 然后“启用” 重启一下 Obsidian,看到 dataview块就能用了!
📦 国内用户可以关注一些公众号、社区分享获取 .zip 文件手动安装。
🧾 DQL 查询语法:新手也能秒上手
Dataview 有四种使用方式,今天先聊前两种(对新手最友好)。
🪄 TABLE 表格模式
```dataview
table time-played, rating
from "games"
sort rating desc
效果:从 games 文件夹下拉出所有笔记的 time-played 和 rating 字段,以表格形式展示并按评分倒序排列。
🧾 LIST 列表模式
```dataview
list from #book/scifi or #book/fantasy
效果:列出所有标签是 #book/scifi 或 #book/fantasy 的笔记标题。
✅ TASK 任务模式
```dataview
task from #projects/active
效果:展示带有 #projects/active 标签的所有未完成任务。
💻 进阶玩法:DataviewJS 真·变形金刚
如果你稍微懂点 JavaScript,DataviewJS 会给你打开另一个世界。
举个例子:分组展示你 2024 年读的书,按类型分组、按评分排序。
for (let group of dv.pages("#book")
.where(p => p["time-read"].year == 2024)
.groupBy(p => p.genre)) {
dv.header(3, group.key);
dv.table(["书名", "阅读时间", "评分"],
group.rows
.sort(k => k.rating, 'desc')
.map(k => [k.file.link, k["time-read"], k.rating])
);
}
是不是感觉有点像把 Notion + Excel + JavaScript 拿捏得死死的?
🧪 使用场景分享:鬼哥的日常“花式用法”
🎮 游戏记录排行榜
文件结构:
---
title: Elden Ring
time-played: 85
rating: 9.5
genre: ARPG
---
DQL 查询:
table title, time-played, rating
from "games"
sort rating desc
效果:我家来朋友想找游戏玩,我直接打开这页给他看排行榜,比 Steam 商店还清爽。
📚 读书统计年报
文件结构:
---
title: Project Hail Mary
time-read: 2024-03-18
genre: Sci-Fi
rating: 9.3
---
JS 查询:
let books = dv.pages('"books"')
.where(b => b["time-read"] && b["time-read"].year === 2024)
.groupBy(b => b.genre);
for (let group of books) {
dv.header(2, group.key);
dv.table(["书名", "时间", "评分"],
group.rows.map(b => [b.file.link, b["time-read"], b.rating]));
}
效果:自动生成我的 2024 年度阅读榜单,按类型分组,一目了然。
🧩 跨项目任务清单
在各个项目文件里写:
- [ ] 完成接口联调 #projects/active
- [x] 写技术文档
- [ ] 提交上线申请 #projects/active
任务查询页:
task from #projects/active
效果:所有项目的任务集合在一起自动汇总,变成一个动态的“总控制板”。
🧠 我的使用心得
用了大半年,我真的对 Dataview 有种“笔记革命”的感觉:
🔍 不再靠搜索关键词翻文件,全自动聚合 📊 数据一致、结构清晰,让人有动力整理笔记 🛠 查询逻辑自由组合,数据面板随便搭 👁️ 信息呈现不再死板,真正做到“信息可视化”
你知道吗?我以前写完读书笔记基本就是存档,写了就忘。现在会主动给每本书打标签、标时间、评分,就为了让 Dataview 把它们“排起来”,看着那种整齐有序的展示真的超级爽,甚至会想多读几本来“丰富图表”。
如果你也在用 Obsidian,但还停留在“笔记堆积”的阶段,我真心建议你试试 Dataview。这插件不是来花哨装饰的,它是真的把你的数据“调起来”,让笔记真正成为你的第二大脑,还是会写 SQL 的那种。
把笔记变成能动能思考的数据面板,从你装上 Dataview 的那一刻就开始了。信我,值得你好好折腾。
点击下方公众号,回复关键字:Obsidian,获取Obsidian资料合集。
-END-