Obsidian Dataview 从零开始:把你的笔记库变成数据库

6 阅读2分钟

你是不是觉得 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

三、 排序、限额与改名

想让你的数据库看起来更专业,这三个命令必不可少:

  1. 排序 (Sort):

    • SORT file.mtime DESC (按最后修改时间倒序排列,即最近修改的在前)。
    • DESC = 降序,ASC = 升序。
  2. 限量 (Limit):

    • LIMIT 5 (只显示前 5 本书)。
  3. 改名 (AS):

    • 觉得默认的 file.mday 太丑?用 table file.mday AS 上次使用 把它重命名为中文。

四、 颜值杀手锏:Minimal Cards (卡片模式)

如果你觉得表格太死板,想让它变成像海报一样的卡片流,可以使用 Minimal 主题的 Cards 功能。

操作步骤:

  1. 确保安装了 Minimal 主题或对应的 CSS Snippet。

  2. 在笔记最上方的 Front Matter (YAML) 中加入:

    YAML

    cssclasses: cards, cards-cols-3
    

常用指令参考表:

指令效果说明
cards激活卡片布局
table-100卡片铺满整个窗口宽度
cards-cover图片自动裁剪填满空间
cards-16-9将卡片比例固定为 16:9
cards-cols-2强制显示为 2 列