2026-10-31 11:37:46
Dataview 是 Obsidian 的高级查询插件,通过结构化数据提取、动态视图生成和复杂计算功能,将 Obsidian 转化为强大的数据分析平台。
1. 核心功能解析基于 JavaScript 的查询语言
支持复杂数据操作(如数学计算、条件筛选、聚合统计等),超越传统笔记工具的简单搜索功能。
示例:计算所有笔记中“阅读时长”字段的总和,或筛选特定标签的笔记。
动态视图生成
查询结果可自动渲染为表格、列表、任务看板等格式,并实时嵌入笔记中。
视图随源数据更新而同步变化,无需手动调整。

YAML 元数据与内联字段支持
YAML 前言:在笔记顶部用 --- 包裹的键值对,定义结构化数据(如 tags: #书评、rating: 4.5)。
内联字段:直接在正文中使用 Key:: Value 语法添加元数据(如 状态:: 进行中)。
无缝集成 Obsidian 生态
查询结果可直接嵌入笔记,支持双向链接、反向链接等 Obsidian 核心功能。
与其他插件(如 Calendar、Templates)联动,构建个性化知识管理系统。
Dataview Query Language (DQL)
语法风格:类似 SQL 的流水线操作,适合基础数据筛选与排序。
示例:
TABLE rating, author FROM "书评" WHERE rating > 4 SORT rating DESC此查询从“书评”文件夹中提取评分高于 4 的笔记,按评分降序排列并显示作者字段。Inline Expressions(内联表达式)
使用场景:在笔记正文中直接嵌入 DQL 表达式,实时显示结果。
示例:
本月已完成的任务数:`= length(where(this.file.tasks, (t) => t.completed && t.date.month == date(now).month))`此表达式计算当前笔记中本月已完成的任务数量。DataviewJS(JavaScript API)
功能:通过完整 JavaScript 代码实现高级逻辑(如循环、条件判断、外部数据调用)。
示例:
const books = dv.pages('"书评"') .where(p => p.rating > 4) .map(p => `${p.title} by ${p.author} (${p.rating}/5)`);dv.list(books);此代码筛选高评分书籍并生成格式化列表。Inline JS Expressions(内联 JS 表达式)
简化版 JS:在正文中直接执行单行 JavaScript 代码,适合快速计算。
示例:
当前笔记字数:`= this.file.words`学术研究管理
用 YAML 记录文献信息(作者、年份、关键词),通过 DQL 快速生成参考文献列表或按主题分类统计。
个人任务管理
结合内联字段标记任务状态(状态:: 待办),用 DataviewJS 生成甘特图或进度看板。
习惯追踪与数据分析
在每日笔记中记录习惯数据(如运动时长、阅读页数),通过聚合查询计算周/月平均值并可视化。
知识图谱构建
提取笔记中的双向链接关系,用 DataviewJS 生成网络图,揭示知识间的隐藏联系。
对于需要深度组织、分析笔记的用户,Dataview 是 Obsidian 生态中不可或缺的效率工具。 从基础数据标记到高级自动化报表,它都能提供强大支持。