Bases 数据库视图:把笔记变成可筛选的表格

Obsidian 1.9 引入的 Bases(数据库视图)是近年最重要的官方更新:不离开 Markdown 文件体系,就能让笔记以表格、卡片、看板的形式呈现、排序、筛选和编辑。Notion 用户熟悉的数据库体验,现在以「本地纯文本」的方式实现了。本章带你从零建一个 Base,并给出可直接复用的配置示例。

核心概念:Base、视图与属性

三者的关系一句话说清:Base 是一个数据窗口,视图是它的展示布局,属性(properties)是数据字段。所有数据仍然存在你的 Markdown 文件和它们的属性里,Base 不复制任何内容,只是换个角度看。

Bases 是核心插件(设置 → Core plugins 里确认开启)。官方支持五种布局:

布局 形态 典型场景
Table 表格 行是文件,列是属性 书单、文献库、项目清单
Cards 卡片 网格卡片,可显示封面图 影音收藏、灵感集
List 列表 带项目符号的列表 简单清单
Kanban 看板 按属性值分列的卡片 任务流转(1.14+)
Map 地图 地图上的图钉 需要官方 Maps 插件

创建你的第一个 Base

三种入口:命令面板运行 Bases: Create new base(在当前笔记所在文件夹创建);文件列表右键文件夹选 New base;或命令面板运行 Bases: Insert new base,直接在当前笔记里插入并嵌入一个新 Base。

建好后的界面是一条工具栏加数据区。以「读书库」为例,四步配好:

  1. Filter 过滤:添加条件,只显示打了 #读书 标签的笔记(比如选 All the following are true → file.hasTag("读书"))。
  2. Properties 属性:勾选要在表格里显示的列,比如 status、rating、author。
  3. Sort 排序:按 rating 降序,再看 date 新到旧。
  4. Group 分组:按 status 分组,在读、已读、想读一目了然。

Base 文件本身是 YAML 语法的 .base 文件,想精确控制可以直接编辑源码:

filters:
  and:
    - file.hasTag("读书")
views:
  - type: table
    name: 全部书目
    order:
      - file.name
      - status
      - rating
    sorts:
      - property: rating
        direction: DESC

Base 也能嵌入笔记:![[读书库.base]] 显示默认视图,![[读书库.base#视图名]] 指定视图。甚至可以直接在 Markdown 里写 base 代码块内嵌配置。这一整套语法属于 Obsidian 的 Bases syntax,进阶用法以官方帮助文档的 Bases 章节为准。

筛选、排序与分组

Filter(过滤)支持三组逻辑连接词:All the following are true(且)、Any of the following are true(或)、None of the following are true(非)。条件可应用在「所有视图」或「仅当前视图」两级。每个条件由三部分组成:属性(含 file.name、file.folder、file.hasTag() 等文件属性)、操作符(随属性类型变化,文本有包含/开头是,日期有早于/晚于,数字有大于/小于)、值(可以是公式和函数)。

Sort(排序)支持多级排序,拖动调整优先级;文本按字母序、数字按大小、日期按新旧。

Group(分组)每个视图只能按一个属性分组,但可以手动排列组顺序、隐藏空组、手动新建空组。表格、卡片、列表布局里点击组标题可折叠。

表格视图的加分功能

表格视图有两个容易被忽视的利器:

  • 列汇总(Summaries):右键列头选 Summarize,可以给数值列加总和、平均、中位数、最大最小值,给日期列加最早最晚,给任意列加计数。读书库的 rating 列加个平均值,你全年阅读质量的分布立刻可见。
  • 行高设置:short 到 extra tall 四档,摘要类表格调高行高能显示更多上下文。

结果工具栏还支持限制条数、复制到剪贴板(可粘进 Excel/Google Sheets)、导出 CSV——和外部工具交换数据的通道是畅通的。

看板:任务流转的本地实现

Kanban 布局(Obsidian 1.14 及以上)按分组属性把卡片分列显示。用法:新建视图选 Kanban,Group by 选状态类属性(如 status)。之后可以直接拖动卡片换列——拖动会自动更新那张笔记的属性值。从「想读」拖到「在读」,笔记里的 status 字段就变了。列的顺序、宽度、封面图属性都可以在视图设置里调。

注意边界:按 file.folder 分组时拖动卡片等于移动文件;按公式或文件属性(非文件夹)分组时只能调整组的顺序和可见性,不能拖卡换列。

与文件夹、标签、搜索的分工

Bases 出现后,组织体系升级为四件套:文件夹管存放、标签管分类、链接管关系、Bases 管视图。判断何时该建 Base 的标准很简单:当你发现自己在反复跑同一个搜索、或反复用标签筛选同一批笔记时,就把它固化成一个 Base——它比搜索更适合「长期盯着的清单」,因为列、排序、分组都可定制,还能就地编辑属性。

实用起步清单:读书库(tags 过滤 + status 分组 + rating 排序)、项目看板(status 分组 + deadline 列)、文献库(author 列 + year 排序)。建好这三个,你基本就掌握 Bases 了。

公式与函数:进阶字段

当现成属性不够用时,Bases 提供了公式(formulas)能力:基于既有属性计算出新列。典型用法:读书库里用「完成日期减去开始日期」算阅读时长;任务库里给截止日期做「剩余天数」列;文献库里拼接作者与年份生成规范引用串。

公式写在 Base 的属性配置里,语法层面支持算术运算和一组内置函数(文本处理、日期运算、数值计算等),配合点按界面或直接编辑 .base 源码皆可。文件属性函数(file.hasTag()、file.inFolder() 等)在过滤器和公式里都可用,嵌套标签会被自动包含。

本书不展开完整函数清单——它随版本演进较快,请以官方帮助文档的 Bases 公式与函数章节为准。实用建议是:公式列宁少勿多,复杂的派生逻辑宁可写成独立属性手动维护,也要保证每一列的含义一眼可懂;公式是调味料,属性才是主菜。

Base 文件的组织与管理

.base 文件是普通的仓库文件,管理上有几个实践要点。集中存放:Base 文件建议统一放一个 Bases 文件夹(或在各区的 Meta 子目录),靠嵌入用到各处——因为 Base 的价值在「被多处复用」,集中管理便于维护。命名带语义:读书库-按状态分组.base 比 base1.base 三个月后好找十倍。善用多视图:一个 Base 配多个视图比建多个 Base 更好——过滤条件共用、视图各自定制,维护成本最低。

嵌入是 Base 的主要消费方式:![[读书库.base]] 嵌进项目主页、仪表盘笔记、周记模板里,让同一份数据在不同场景以合适的视图出现。配合文件夹的结构划分,最终形态通常是:每个主要领域一篇「仪表盘」笔记,嵌入二三个相关的 Base 视图,一屏看清全局——这就是纯文本世界里的 Notion 首页体验。

从 Notion 数据库迁移的视角

从 Notion 过来的用户关心等价性,给一个诚实的对照:Notion 数据库的「筛选、排序、分组、多视图」Bases 全部覆盖;「关联与汇总」(relation/rollup)可用双链属性加公式近似,但语义不如 Notion 顺滑;「公式列」支持但函数集更精简;多人协作编辑则完全不是 Obsidian 的设计目标。正确的迁移心态是:Bases 不是一个「更弱的 Notion」,而是「为个人知识库量身定制的轻数据库」——它牺牲协作与复杂关联,换来纯文本、本地化与零锁定。用它的长处,别拿短处硬比。

五步建一个「任务总控」Base

作为收官演示,把本书多个章节的思路汇总成一个实战 Base——个人任务总控。前置条件:任务笔记统一打 #任务 标签,属性含 status(待办/进行中/等待/完成)和 due(日期类型)。

第一步,命令面板运行 Bases: Create new base,命名 任务总控。第二步,Filter 添加条件:file.hasTag("任务"),应用范围选所有视图。第三步,建第一个视图「看板」:type 选 Kanban,Group by status——四个状态列自动出现,把任务卡从待办拖到进行中,源笔记的 status 同步更新。第四步,建第二个视图「截止排序」:type 选 Table,列勾选 status、due,Sort 按 due 从旧到新,再给 due 列加个 Earliest 汇总,最近一个截止日直接显示在表尾。第五步,把这个 Base 嵌进主页:![[任务总控.base]],GTD 章说的「待办总表」就有了官方实现。

五步走完你会发现:标签是数据入口,属性是字段,Base 是视图,嵌入是分发——四件事各司其职,组合出来的却是一个不输专用任务软件的管理界面。这个「标签进、视图出」的套路,换个标签、换组属性,就能复制出读书库、文献库、健身记录库。Bases 的学习到这一步已经够用,公式与函数属于需要时再查的工具箱。

延伸阅读:从 Notion 迁移过来的数据清洗常需要正则帮忙,正则表达式从入门到精通 是好帮手;想给 Base 数据加一层 AI 处理流水线,Claude Code 完全指南 提供了命令行侧的想象空间。

本章由 WorkBuddy 原创整理,功能行为依据 Obsidian 官方帮助文档。