Bases 数据库(新核心功能)
当笔记长出骨架:Obsidian 1.9 起的原生数据库,让结构化信息所见即所得。
很长一段时间,Obsidian 擅长”网”,却不擅长”表”。你想把读书清单、选题库、任务列表整理成行列分明的数据库,只能求助第三方插件 Dataview。直到 1.9 版本(2025 年)官方推出核心插件 Bases,笔记才真正长出了”骨架”。
Bases 是什么
Bases 是一个所见即所得的笔记数据库。它的核心理念很优雅:每一行就是一篇笔记,每一列就是笔记的一个属性(property)。你不必再为数据单独建一份”表格”,因为数据本就住在 Markdown 文件的 frontmatter 里,Bases 只是把它们聚拢成一张可浏览、可编辑、可筛选的视图。
所有数据始终保存在你本地的 Markdown 文件和属性中,Bases 本身只描述”怎么看”。视图可以存成独立的 .base 文件,也能用 ```sql 代码块直接嵌进任意笔记。
Bases 与 Dataview:官方对第三方
Dataview 是久负盛名的社区插件,用类 SQL 的查询语句(DQL)甚至 JavaScript 生成动态列表,功能强大但学习曲线陡峭,结果”只读”。
Bases 则走另一条路:官方核心插件、可视化操作、点击即编辑、所见即所得。它不需要你写查询语句(虽然也提供高级语法),更像 Notion 的数据库视图。两者并非取代关系——Dataview 在复杂聚合上仍占优,但日常的结构化管理,Bases 已经足够顺手,且原生可靠。
创建一个 Base
新建 Base 有三种方式:命令面板里 Bases: Create new base(生成 .base 文件)、Bases: Insert new base(在当前笔记里插入代码块)、或文件管理器右键”New base”。一个 Base 可以包含多个视图(view),比如”读书清单”下分”待读”和”已读”两个视图,各自配置。
视图类型
Bases 提供四种布局,随版本演进逐步丰富:
- Table(表格):1.9 引入,文件作行、属性作列,最经典的数据库形态。
- Cards(卡片):1.9 引入,网格布局,适合带封面的画廊式展示,如电影海报墙。
- List(列表):1.10 引入,项目符号或编号列表,轻量简洁。
- Map(地图):1.10 引入,按地理位置把文件标成图钉(需配合 Maps 插件)。
过滤、排序与分组
工具栏上四个按钮管住全部”看什么、怎么看”:
- Filter(过滤):由”属性 + 运算符 + 值”组成一条规则,运算符随属性类型变化(文本、数字、日期各不同)。多条规则用 且/或/非(All/Any/None)组合,还能嵌套成过滤组。过滤器可作用于”所有视图”或仅”当前视图”。点代码图标可切到高级编辑器,直接写底层语法、调用函数。
- Sort(排序):按一个或多个属性升序/降序,文本按字母、数字按大小、日期按新旧。多个排序可拖动调整优先级。
- Group(分组):按某一属性把结果分成视觉区块,目前支持按单个属性分组。
- Properties(属性):勾选要显示的列,还能在这里新建公式字段。
公式字段与汇总
Bases 的公式(Formula)让它从”展示器”升级为”计算器”。新建一个公式属性,就能引用其他属性做运算:price * quantity 算总价,if(due_date < now() && status != "Done", "逾期", "") 标红逾期任务,start_date + "2w" 推算两周后的截止日。
公式能引用笔记属性、内置文件属性(file.name、file.size、file.mtime),甚至引用别的公式(formula.单价 * 1.1)。它支持算术、比较、布尔运算,以及一长串函数:if、now、max、min、round、format、contains、replace……还能处理列表,用 filter、map、sort、join、unique 聚合数据,用 .length 数一数清单里有几项。所谓”汇总”,便是在这层层计算里自然完成——统计总花费、计数待办、找出最高分,都不过是一行公式。
实战场景
- 选题库:表格视图配
状态列,筛”草稿”看在写什么,按优先级排序。 - 任务库:用
task-todo思路筛未完成事项,按截止日期分组,逾期一目了然。 - 读书清单:卡片视图配封面图,按”在读/读完”分两个视图,公式算”读完天数”。
- 电影清单:卡片墙展示海报,公式算个人评分与豆瓣评分的差值,决定是否值得二刷。
Bases 的出现,补上了 Obsidian 最后一块拼图:链接织成网,图谱照见全局,而数据库,则让那些需要被清点、被排序、被计算的事务,终于各归其位。