你是不是觉得 Obsidian 里的笔记多了之后很难找?其实只要学会 Dataview 插件,你就能像查 SQL 或者 Excel 一样,瞬间把符合条件的笔记抓取出来。
这里整理了 Dataview 的实战技巧,建议配合我的 YouTube 教学视频一起食用。
小贴士: 所有代码块都要放在三个反引号内,并且第一行必须声明
dataview关键字哦!
一、 核心骨架:Dataview 的基本语法
最简单的 Dataview 查询只需要两行:
代码段
table
from ""
- Table: 生成一个表格。
- From: 告诉插件去哪里找笔记,空字符串
""代表搜索全库。
如果你想看特定的属性(比如:作者、评分),只需要在 table 后面用英文逗号隔开:
代码段
table 字段一, 字段二, 字段三
from ""
where econtains(in, [[Books]])
注意:字段之间一定要用英文逗号。
二、 进阶筛选:精准定位笔记
1. 基础过滤与排除模板
如果你不想在搜索结果里看到“模板”文件夹里的内容,记得加上这一句:
where !contains(file.path, "Templates")(排除所有路径中包含 Templates 的笔记)
2. 处理多选列表 (List Type)
如果你有一个字段叫“阅读状态”,里面存的是列表,用 econtains 是最稳妥的选择:
-
找实体书:
where econtains(阅读状态, "实体书") -
组合拳 (And/Or): 想找特定的电子书平台?
代码段
where ( econtains(持有状态, "Kindle") or econtains(持有状态, "微信读书") )
3. 逻辑取反(找“未分类”或“没读过”的笔记)
- 找未分类: 使用
and !书本类别。如果这个字段是空的,它就会被抓出来。 - 否定条件: 在条件前加
!或者在后面加= false。
三、 排序、限额与改名
想让你的数据库看起来更专业,这三个命令必不可少:
-
排序 (Sort):
SORT file.mtime DESC(按最后修改时间倒序排列,即最近修改的在前)。DESC= 降序,ASC= 升序。
-
限量 (Limit):
LIMIT 5(只显示前 5 本书)。
-
改名 (AS):
- 觉得默认的
file.mday太丑?用table file.mday AS 上次使用把它重命名为中文。
- 觉得默认的
四、 颜值杀手锏:Minimal Cards (卡片模式)
如果你觉得表格太死板,想让它变成像海报一样的卡片流,可以使用 Minimal 主题的 Cards 功能。
操作步骤:
-
确保安装了 Minimal 主题或对应的 CSS Snippet。
-
在笔记最上方的 Front Matter (YAML) 中加入:
YAML
cssclasses: cards, cards-cols-3
常用指令参考表:
| 指令 | 效果说明 |
|---|---|
cards | 激活卡片布局 |
table-100 | 卡片铺满整个窗口宽度 |
cards-cover | 图片自动裁剪填满空间 |
cards-16-9 | 将卡片比例固定为 16:9 |
cards-cols-2 | 强制显示为 2 列 |