Obsidian 核心插件数据库(Bases)之基础使用教程
Obsidian 一直以来给人的印象是纯文本、链接与双向关联的世界,笔记以文件形式散落在仓库各处,想要跨文件查看和管理某类笔记属性,往往只能借助 Dataview 这类社区插件。Dataview 功能强大,但需要学习查询语法,对新手并不友好;而写好的查询一旦属性字段发生变动,还得回头手动修改。
数据库(Bases)是 Obsidian 1.9 版本随之引入的核心插件,它的定位是为笔记提供类数据库的视图能力。数据依然存在本地的 Markdown 文件和属性(Frontmatter)里,数据库只是以表格、卡片、列表或地图等不同布局来呈现和操作这些数据。可以在同一个数据库文件中建立多个视图,对不同维度的属性做筛选、排序、分组,还可以通过公式列创建计算值。最重要的是,整套操作都有图形界面支撑,不需要手写查询语句。
本文以数据库的完整使用流程为主线,从启用插件开始,逐步覆盖创建数据库、管理视图、配置筛选与排序、嵌入笔记等各个环节,力求让每一步操作都有据可查。
目录
- 数据库(Bases)是什么
- 核心价值与适用场景
- 前提条件与版本要求
- 启用数据库核心插件
- 创建数据库的三种方式
- 认识数据库工具栏
- 视图:布局、添加与切换
- 筛选:精准定位你的笔记
- 排序与分组结果
- 结果管理:限制、复制与导出
- 嵌入数据库到笔记中
- 常见问题与注意事项
- 进阶用法与个性化调整
1. 数据库(Bases)是什么
数据库(Bases)是 Obsidian 的一个 核心插件,核心理念是:笔记仓库本身就是一个数据集合,Bases 提供的是一套读取和呈现这个数据集合的界面层。
每一个 .base 文件就是一个数据库,它并不真正「存储」数据,而是描述如何从仓库中筛选文件、展示哪些属性列、以什么方式排序分组。所有实际数据依然以 Markdown 文件及其 YAML 属性(Frontmatter)的形式保存在本地,Bases 只是让这些分散的属性值以一种集中、可视化的形式呈现出来。
一个数据库可以包含多个视图,每个视图可以独立配置布局、筛选条件、排序方式和属性显示,互不干扰。视图的配置遵循 Bases 语法,保存为 .base 文件,或者直接以代码块的形式嵌入到任意 Markdown 笔记中。
💡 说明 Bases 与社区插件 Dataview 在功能定位上有所重叠,但两者的设计理念截然不同。Dataview 以查询语言为核心,灵活但门槛较高;Bases 以图形界面为核心,上手容易,适合不希望维护查询代码的用户。两者可以在同一仓库中共存,分别承担不同的任务。
2. 核心价值与适用场景
Bases 的价值在于把散落在仓库各处、格式相似的一批笔记整合成一个可操作的视图,让你能够横向比较和管理这些笔记的属性,而不需要逐一打开每一个文件。
以下是几类典型的使用场景:
项目管理:仓库中有大量以项目为单位的笔记,每条笔记都记录了项目名称、负责人、截止日期、当前状态等属性。创建一个 Bases 数据库,就可以在表格视图中一眼看到所有项目的状态,按截止日期排序,或者只筛选出状态为「进行中」的项目。
阅读与资料管理:收藏的文章、书摘、学术文献统一打上标签,记录来源、阅读状态、评分等属性。在 Bases 里可以按评分排序、按阅读状态分组,方便回顾和再利用。
写作进度追踪:长期写作项目的每篇文章单独建立一个笔记,记录字数、状态、主题分类等字段。Bases 表格视图可以直观地展示整体进度,卡片视图则可以展示封面图或摘要。
旅行与生活清单:为每次出行或每个待完成事项建立笔记,记录地点、时间、完成情况等属性,通过地图视图直观呈现地理位置,通过筛选区分已完成和未完成的事项。
这些场景有一个共同特征:一批结构相似、属性统一的笔记,需要跨文件地被查看和管理。这正是 Bases 最擅长的工作。
3. 前提条件与版本要求
Obsidian 版本:Bases 从 Obsidian 1.9 版本开始作为核心插件引入,表格视图和卡片视图在 1.9 版本中已正式可用;列表视图和地图视图在 1.10 版本中加入,部分功能在更高版本中仍在持续迭代。建议将 Obsidian 升级至 1.10 或以上版本,以获得完整的布局支持。
属性(Properties)的基本了解:Bases 以笔记的属性(Frontmatter 中的 YAML 键值对)为数据基础。如果你的笔记尚未系统地使用属性,可以先了解 Obsidian 的 属性功能,再来使用 Bases,效果会更显著。
无需额外安装:Bases 是核心插件,无需从社区插件市场安装,只需在设置中启用即可。
⚠️ 注意 地图视图(Map)需要额外启用 Maps 核心插件才能正常显示。如果你计划使用地图布局,请确认 Maps 插件也已开启。
4. 启用数据库核心插件
Bases 默认未开启,需要手动在核心插件列表中启用。
第一步:进入核心插件设置。 打开 Obsidian,点击左下角的「设置」齿轮图标,进入设置界面后选择左侧菜单中的「核心插件」。
第二步:找到并启用数据库插件。 在核心插件列表中找到「数据库」(Bases),将右侧开关拨至开启状态。
第三步:确认启用成功。 启用后,在命令面板(Ctrl/Cmd+P)中搜索「数据库」,若能看到「数据库:新建数据库」等相关命令,说明插件已正常启用。
💡 说明 启用核心插件不需要重启 Obsidian,操作后即刻生效。如果在核心插件列表中找不到「数据库」,请检查当前 Obsidian 版本是否为 1.9 或以上,旧版本不包含此插件。
5. 创建数据库的三种方式
Obsidian 提供了三个入口来新建数据库,根据你当前的操作习惯选择最顺手的一种即可,最终效果完全相同。
5.1 通过命令面板创建
按 Ctrl/Cmd+P 打开命令面板,搜索「数据库」,会看到两个相关命令:
- 数据库:新建数据库——在当前笔记所在的文件夹中新建一个
.base文件,并在主编辑区打开它。 - 数据库:新建数据库并插入——同样新建
.base文件,但同时在当前打开的 Markdown 笔记中插入嵌入链接,方便随时在笔记内访问这个数据库视图。
5.2 通过文件浏览器创建
在左侧文件浏览器中,右键点击你想要存放数据库文件的文件夹,在弹出菜单中选择「新建数据库」。这种方式适合在特定文件夹结构中创建数据库,文件会直接保存在所选文件夹内,路径清晰。
5.3 通过左侧功能区创建
在 Obsidian 左侧功能区(即竖向图标栏)中,找到并点击「新建数据库」的入口图标,会在当前笔记所在的文件夹中创建数据库。
💡 说明(按需调整) 三种入口创建的
.base文件在功能上完全一致,区别仅在于文件的存储位置和是否自动插入到当前笔记中。如果你的仓库使用了分层文件夹结构,建议通过文件浏览器右键菜单来创建,确保数据库文件落在合适的位置,便于日后管理。
新建数据库后,Obsidian 会自动打开该文件,你会看到一个空白的数据库界面,工具栏横列在顶部,正文区域等待你添加内容和配置视图。
6. 认识数据库工具栏
每个数据库文件顶部都有一条工具栏,几乎所有的操作入口都集中在这里。在开始使用之前,先认识工具栏的各个功能按钮,会让后续操作更加顺手。
工具栏从左到右依次包含以下功能区:
视图菜单(表格图标):点击后展开视图列表,可以在此创建新视图、切换已有视图、重命名或删除视图,也可以拖动视图顺序来调整默认加载的视图。
结果:显示当前视图匹配的文件数量,点击后可以限制结果数量(即设置只显示前 N 条),以及执行复制到剪贴板或导出 CSV 等操作。
排序(箭头图标):点击后展开排序与分组菜单,可以按一个或多个属性对结果进行升序/降序排列,也可以选择按某个属性对结果进行分组。
筛选(漏斗图标):点击后展开筛选器配置面板,可以为当前视图或所有视图添加筛选条件,按属性值缩小显示范围。
属性(列表图标):点击后可以选择在当前视图中显示哪些属性列,也可以在此创建公式列,通过表达式计算出新的列值。
搜索(放大镜图标):在已显示的属性范围内进行关键词搜索,快速定位某条记录。
新建(加号图标):在当前视图所在的文件夹中新建一个 Markdown 文件,新文件会自动继承当前视图的筛选条件所对应的属性(如果适用),并出现在视图列表中。
✅ 推荐做法 刚开始使用时,建议先通过「属性」按钮选择要显示的列,确认数据库能正确读取到笔记的属性后,再去配置筛选和排序。这样可以更快地判断数据库的数据来源是否正确,避免因属性字段名拼写不一致而导致列为空的困惑。
7. 视图:布局、添加与切换
7.1 四种布局类型
数据库目前支持四种布局,每种布局适合不同的内容类型和使用场景:
表格(1.9 及以上):将文件显示为表格中的行,每一列对应笔记的一个属性。这是最通用的布局,适合需要横向对比多个属性值的场景,例如管理任务状态、追踪写作进度。列宽可以手动调整,列顺序可以拖动更改。
卡片(1.9 及以上):将文件显示为卡片网格,每张卡片代表一个文件。如果笔记的属性中包含图片路径,卡片视图可以将其渲染为封面图,形成类似图库的效果。适合视觉化浏览的场景,如图片素材库、产品展示。
列表(1.10 及以上):将文件显示为无序列表或有序列表,条目之间层次分明。适合阅读清单、书单、资源索引等需要快速浏览文件名而不需要多列属性的场景。
地图(1.10 及以上,需要 Maps 插件):将文件显示为交互式地图上的标记点,需要笔记属性中包含地理坐标信息。适合旅行记录、地点收藏、田野调查笔记等与地理位置相关的场景。
| 布局 | 最低版本 | 典型使用场景 |
|---|---|---|
| 表格 | 1.9 | 任务管理、进度追踪、多属性对比 |
| 卡片 | 1.9 | 图库、产品展示、素材浏览 |
| 列表 | 1.10 | 书单、资源索引、条目浏览 |
| 地图 | 1.10 | 地点收藏、旅行记录、地理标注 |
7.2 添加和切换视图
一个数据库文件可以同时包含多个视图,每个视图可以使用不同的布局,也可以有各自独立的筛选和排序配置。视图之间的切换不会相互影响。
添加视图有两种方式:
- 点击工具栏最左侧的视图名称,展开视图列表后,点击列表底部的「添加视图」按钮(加号图标);
- 打开命令面板(
Ctrl/Cmd+P),搜索并执行「数据库:添加视图」命令。
切换视图时,同样点击工具栏左侧的视图名称,在展开的列表中选择目标视图即可。视图列表中第一个视图是默认加载的视图;拖动视图图标可以调整顺序,从而更改默认视图。
💡 说明(按需调整) 以下是一个多视图使用的参考示例:假设你建立了一个用于管理写作项目的数据库,可以在其中创建两个视图——「创作中」视图筛选状态属性为「进行中」的文件,按最近修改时间倒序排列;「已归档」视图筛选状态属性为「已完成」的文件,按发布日期排序。两个视图使用同一批数据,但各自呈现不同阶段的内容,互不干扰。
视图名称 筛选条件 排序方式 适用场景 创作中 状态 = 进行中 修改时间(新→旧) 日常工作台 已归档 状态 = 已完成 发布日期(新→旧) 成果回顾 视图名称、筛选字段和属性值均为示例,请根据你自己仓库中实际使用的属性名称替换。
7.3 编辑视图设置
每个视图都有独立的配置入口。要编辑某个视图的设置,有两种操作方式:
- 点击工具栏左侧的视图名称,在展开的列表中找到目标视图,点击其右侧的向右箭头图标,即可进入该视图的设置面板;
- 直接右键点击工具栏中的视图名称标签,在弹出的上下文菜单中快速访问视图设置选项。
视图设置面板中可以修改视图名称、选择布局类型,以及调整该视图专属的筛选和属性列配置。
8. 筛选:精准定位你的笔记
8.1 筛选器的基本概念
没有添加任何筛选器的数据库,会将整个仓库中的所有文件都显示出来——包括你可能完全不希望出现在这个数据库里的笔记。筛选器的作用就是缩小显示范围,只保留符合特定条件的文件。
点击工具栏中的筛选图标(漏斗图标),展开筛选配置面板,即可开始添加筛选条件。
8.2 筛选器的三个组成部分
每一条筛选规则由三个部分构成:
属性:从下拉菜单中选择一个属性作为筛选依据。可选的范围包括笔记的自定义属性(Frontmatter 中的字段),也包括 Obsidian 内置的笔记属性,例如文件名(file.name)、所在文件夹(file.folder)、标签(file.tags)、创建时间(file.ctime)、修改时间(file.mtime)等。
运算符:选择比较方式。可用的运算符取决于属性类型:文本类型支持「等于」「包含」「开头为」等;数字类型支持「大于」「小于」「等于」等;日期类型支持「早于」「晚于」「在某个范围内」等;标签和多选类型则提供「包含」「不包含」等选项。
值:填写要比较的目标值。这里不仅可以输入静态的字符串或数字,还可以使用数学运算和 公式函数——例如用 now() 表示当前时间,从而实现「只显示截止日期在今天之前的文件」这类动态筛选。
8.3 筛选条件的作用范围
筛选面板内分为两个区域:
所有视图:在此添加的筛选条件会对该数据库内的所有视图生效,相当于全局筛选。适合用来限定数据库的数据范围,例如「只显示某个文件夹内的文件」或「只显示带有特定标签的文件」。
当前视图:在此添加的筛选条件只对当前选中的视图生效,其他视图不受影响。适合用来在全局范围的基础上进一步细化,例如在「写作项目」数据库的全局筛选中限定文件夹范围,然后在「创作中」视图的单独筛选中再加一条「状态属性等于进行中」的条件。
8.4 连接多个筛选条件
当需要添加多个筛选规则时,需要选择条件之间的逻辑关系:
- 满足以下所有条件(且逻辑):所有条件必须同时成立,才会显示该文件。例如,同时满足「标签包含 技术」且「创建日期在 2025 年以后」的文件才会出现。
- 满足以下任意条件(或逻辑):只要满足其中一个条件,该文件就会显示。例如,标签包含「技术」或者标签包含「设计」,满足其一即显示。
- 不满足以下任何条件(非逻辑):只要满足其中任何一个条件,该文件就会被排除在外。
8.5 筛选组与高级筛选
多个条件可以被组织成筛选组,每个组内部选择一种逻辑关系,组与组之间再选择另一种逻辑关系,从而构建出「(条件 A 且 条件 B) 或 条件 C」这类更复杂的嵌套逻辑。
对于更高阶的需求,点击筛选面板中的代码按钮,可以切换到高级筛选编辑器,直接编辑筛选器对应的原始 Bases 语法,配合更复杂的公式函数使用。这类表达式无法通过点击界面生成,但高级编辑器提供了完整的控制权。
💡 说明(按需调整) 以下是一个筛选条件配置的参考示例,展示如何将数据库的显示范围限定在仓库的某个特定区域。此示例中用到了自定义属性名和标签名,请替换为你自己仓库中实际存在的值:
筛选部分 示例值 说明 属性 file.hasTag("project")筛选带有 project 标签的文件 属性 file.folder筛选特定文件夹下的文件 值 Projects/Active替换为你自己的目标文件夹路径 将上述条件放入「所有视图」区域,即可让整个数据库只显示该范围内的文件,而不需要在每个视图中重复配置。
9. 排序与分组结果
9.1 添加排序规则
点击工具栏中的排序图标(上下箭头图标),展开排序菜单。点击「添加排序」后,从属性列表中选择要排序的字段,然后选择排序方向:
- 文本属性:按字母顺序(A→Z)或反向字母顺序(Z→A)排列。
- 数字属性:按从小到大(0→1)或从大到小(1→0)排列。
- 日期与时间属性:按从旧到新或从新到旧排列。
可以同时添加多个排序规则,规则之间的优先级通过拖动排序。例如,先按「状态」属性分类,再在相同状态内按「修改时间」倒序排列,这样就能在每个状态分组中看到最近编辑的文件排在最前面。
要移除某条排序规则,打开排序菜单后点击该条件右侧的删除按钮(垃圾桶图标)即可。
9.2 对结果进行分组
排序菜单中同样包含分组功能。选择一个属性作为分组依据后,视图中的文件会被归入以该属性值命名的不同区块,视觉上形成明确的分组边界,方便快速定位某一类文件。
目前 Obsidian Bases 支持按单个属性进行分组,暂不支持多级分组。选择分组属性后,可以根据需要同时配置该分组内部的排序规则。
✅ 推荐做法 对于状态类属性(如「进行中 / 暂停 / 已完成」),分组功能非常直观。每个状态值自动形成一个区块,文件数量一目了然,新增或修改状态时无需手动调整,数据库会自动重新归类。
10. 结果管理:限制、复制与导出
10.1 限制显示数量
点击工具栏中的「结果」按钮,可以看到当前视图匹配的文件总数。在此还可以设置结果数量上限,让视图只显示前 N 条记录。这个功能在文件数量很多但你只想关注排序靠前的内容时非常实用——例如,只显示截止日期最近的前 10 个待办事项,而不是展示所有几十个条目。
10.2 复制到剪贴板
「结果」菜单中提供「复制到剪贴板」操作,点击后会将当前视图的内容以表格格式复制到系统剪贴板。复制后可以粘贴到 Markdown 笔记中,形成一个静态的 Markdown 表格,也可以直接粘贴到 Google Sheets、Excel 或 Numbers 等电子表格应用中,由这些工具自动解析为结构化数据。
10.3 导出 CSV
「结果」菜单同样提供「导出 CSV」选项,点击后会将当前视图的所有内容保存为一个 .csv 文件,可以在任意支持 CSV 格式的外部工具中打开和处理。
💡 说明 复制和导出操作仅作用于当前视图中已配置的属性列,未在「属性」菜单中开启显示的列不会包含在复制或导出的结果中。因此,导出前建议先在「属性」菜单中确认要导出的字段均已勾选显示。
11. 嵌入数据库到笔记中
Bases 提供了两种将数据库视图嵌入到 Markdown 笔记中的方式,两者在效果上相似,但使用场景略有不同。
11.1 嵌入 .base 文件
如果你已经创建了一个独立的 .base 文件,可以在任意 Markdown 笔记中使用标准的嵌入语法将其引入:
![[你的数据库文件名.base]]
这种方式嵌入的是整个数据库文件,默认显示视图列表中排在第一位的视图。如果想要指定嵌入时默认展示的视图,在文件名后加上 #视图名称 即可:
![[你的数据库文件名.base#创作中|创作中]]
其中「创作中」是视图的名称,替换为你实际使用的视图名即可。
11.2 以代码块形式直接嵌入
数据库也可以不依赖独立的 .base 文件,直接以 base 代码块的形式写入 Markdown 笔记中。代码块内使用 Bases 语法 描述筛选条件和视图配置:
```base
filters:
and:
- file.hasTag("project")
views:
- type: table
name: 项目总览
```
这种方式适合在特定的笔记内临时创建一个局部数据视图,不需要单独维护一个 .base 文件,数据库的配置和笔记内容保存在同一个文件中,便于一并管理。
💡 说明(按需调整) 上方代码块中的
file.hasTag("project")是示例筛选条件,表示只显示带有project标签的文件。请将project替换为你的仓库中实际使用的标签名。如果你的仓库是按文件夹而非标签来组织内容的,也可以将筛选条件改为file.folder并指定对应路径。
12. 常见问题与注意事项
12.1 数据库中没有显示任何文件
这是最常见的困惑,通常有以下几种原因:
添加了筛选条件但没有符合条件的文件。检查筛选器中指定的属性名或属性值是否与笔记中的实际写法完全一致——属性名区分大小写,多一个空格或大小写不同都会导致匹配失败。
仓库中的笔记尚未使用任何属性。如果笔记没有 Frontmatter,属性列将全部为空,但文件本身应该仍然出现在未筛选的视图中。如果完全没有文件,先移除所有筛选条件确认数据库能正常读取仓库文件,再逐步添加筛选条件排查。
12.2 属性列显示为空但笔记中有该属性
检查笔记的 Frontmatter 中属性字段名是否与数据库的「属性」列配置中的名称拼写完全相同。Obsidian 的属性名区分大小写,Status 和 status 会被视为两个不同的属性。
另外,属性类型也会影响显示。如果属性值的格式与属性类型不符(例如日期属性填写了文本内容),数据库可能无法正确解析,导致显示异常。
12.3 地图视图无法显示
使用地图视图需要两个条件同时满足:一是 Obsidian 核心插件中的 Maps 插件已开启(路径:设置 → 核心插件 → Maps);二是参与显示的笔记的属性中包含有效的地理坐标数据(通常为经纬度字段)。缺少任一条件,地图视图将无法正常渲染标记点。
12.4 嵌入的数据库在笔记中显示为空白或代码
如果使用 ![[文件名.base]] 嵌入后显示异常,首先确认 Bases 核心插件已开启,其次确认文件路径和文件名拼写正确(包括 .base 后缀)。如果使用代码块形式嵌入,确认代码块语言类型标注为 base 而非其他语言标识符。
12.5 复制到剪贴板后粘贴到 Markdown 格式错乱
复制操作生成的是标准 Markdown 表格格式,在 Obsidian 笔记内粘贴后显示应该正常。如果粘贴到其他工具(如 Notion、飞书等)出现格式错乱,可以改用「导出 CSV」功能,再通过 CSV 文件导入到目标工具中,通常会有更好的兼容性。
13. 进阶用法与个性化调整
13.1 使用公式列扩展数据
在工具栏「属性」菜单中,除了选择现有的属性列,还可以创建公式列(Formula)。公式列不存储在笔记的 Frontmatter 中,而是在视图渲染时通过表达式实时计算并展示。
常见的公式列用途包括:将两个日期属性相减得出时间间隔、用条件判断函数将数字属性转换为文字标签、拼接多个文本属性生成描述字符串等。公式列的具体语法参见 Bases 函数文档。
13.2 多视图分工协作
一个复杂的数据库往往需要多个视图从不同角度呈现同一批数据。常见的分工模式如下:全局筛选限定数据范围,各视图在此基础上用不同的状态筛选条件划分子集;表格视图用于详细属性的对比操作,卡片视图用于视觉化浏览,列表视图用于快速扫读条目名称。不同布局类型可以共存于同一数据库文件,通过视图菜单快速切换。
13.3 嵌入到仪表盘或主页
如果你的仓库有一个作为「仪表盘」或「主页」的 Markdown 笔记,可以将多个 .base 文件以嵌入方式集中放置在这个笔记中,形成一个一站式的工作台。使用 ![[文件名.base#视图名|视图名]] 语法可以精确控制每个嵌入区块展示的视图,让不同类型的数据库视图有序地排列在同一个页面中。
13.4 与 Templater 或 QuickAdd 配合使用
Bases 的价值来自于笔记属性的一致性——只有当一批笔记的属性字段名称和格式统一,数据库才能准确地筛选和展示它们。结合 Templater 或 QuickAdd 插件,可以为特定类型的笔记创建属性模板,确保每次新建笔记时自动填充标准化的属性结构。这样在 Bases 数据库中就不会因为属性缺失或名称不一致而出现数据漏读的问题。
13.5 高级筛选语法的直接编辑
对于有一定 YAML 语法基础的用户,可以在筛选面板切换到高级筛选编辑器,直接编写 Bases 语法来构建筛选逻辑。这种方式支持更复杂的嵌套条件和公式函数组合,例如基于 now() 函数计算动态时间范围,实现「过去 7 天内修改的文件」这类滚动窗口筛选。图形界面无法表达的逻辑,在高级编辑器中几乎都可以实现。