Bases 数据库教程
📌 最低版本: Obsidian 1.8+
Bases(数据库)是 Obsidian 1.8 引入的原生数据库功能,无需插件即可实现类似 Notion 的数据管理。
概述
Bases 是一种特殊类型的笔记,可以:
- 📊 以表格、卡片等视图展示笔记集合
- 🔍 按属性筛选和排序
- 🔗 建立笔记间的关联关系
- ✏️ 直接在视图中编辑属性
Bases vs Dataview
| 特性 | Bases | Dataview |
|---|---|---|
| 内置功能 | ✅ 是 | ❌ 需安装插件 |
| 实时编辑 | ✅ 支持 | ❌ 只读视图 |
| 学习曲线 | 🟢 简单 | 🟡 中等 |
| 查询能力 | 🟡 基础 | 🟢 强大 |
| 视图类型 | 多种 | 主要是表格 |
快速开始
创建 Base
- 创建新笔记,命名为
任务管理.base - 文件会自动识别为 Base 类型
- 或者使用命令:
Create new base
基本结构
markdown
---
type: base
---
# 任务管理
## 配置数据源
source: "tasks" # 文件夹路径📊 视图类型
表格视图
最常用的视图,类似电子表格:
markdown
## 所有任务
```base
source: "tasks"
view: table
columns:
- title
- status
- due
- priority
sort:
- property: due
order: asc
### 卡片视图
适合展示笔记预览:
```markdown
## 项目卡片
```base
source: "projects"
view: cards
cover: image
columns:
- title
- progress
- status
### 列表视图
简洁的列表展示:
```markdown
## 最近笔记
```base
source: "notes"
view: list
sort:
- property: date
order: desc
limit: 10
### 日历视图
按日期展示任务:
```markdown
## 任务日历
```base
source: "tasks"
view: calendar
date: due
columns:
- title
- status
---
## 🔍 筛选与排序
### 基础筛选
```yaml
filters:
- property: status
operator: equals
value: "todo"多条件筛选
yaml
filters:
- property: status
operator: equals
value: "todo"
- conjunction: and
- property: priority
operator: equals
value: "high"筛选操作符
| 操作符 | 说明 | 示例 |
|---|---|---|
equals | 等于 | status equals "done" |
not_equals | 不等于 | status not_equals "archived" |
contains | 包含 | tags contains "work" |
starts_with | 开头是 | title starts_with "项目" |
ends_with | 结尾是 | title ends_with "笔记" |
is_empty | 为空 | due is_empty |
is_not_empty | 不为空 | tags is_not_empty |
before | 之前 | due before "2024-02-01" |
after | 之后 | due after "2024-01-01" |
排序
yaml
sort:
- property: priority
order: desc
- property: due
order: asc📝 列配置
显示列
yaml
columns:
- title
- date
- status
- priority列重命名
yaml
columns:
- property: title
display: "任务名称"
- property: due
display: "截止日期"列宽度
yaml
columns:
- property: title
width: 300
- property: status
width: 100列排序
yaml
columns:
- property: priority
sortable: true
- property: due
sortable: true
defaultOrder: asc🔗 关联关系
建立关联
在笔记中添加链接属性:
yaml
---
title: 任务名称
project: "[[项目A]]"
assigned: "[[张三]]"
---关联视图
yaml
# 在项目笔记中显示相关任务
```base
source: "tasks"
filters:
- property: project
operator: equals
value: "{{title}}"
columns:
- title
- status
- due
### 双向关联
```yaml
# 项目笔记
---
title: 项目A
tasks:
- "[[任务1]]"
- "[[任务2]]"
---
# 任务笔记
---
title: 任务1
project: "[[项目A]]"
---🎨 高级配置
分组显示
yaml
group:
- property: status
order:
- "todo"
- "in-progress"
- "done"条件格式
yaml
formatting:
- property: priority
conditions:
- value: "high"
style: "red"
- value: "medium"
style: "yellow"
- value: "low"
style: "green"内联编辑
在表格视图中:
- 单击单元格直接编辑
- 双击打开源笔记
- 右键显示更多选项
📋 实战案例
任务管理系统
markdown
---
type: base
---
# 任务管理
## 📋 待办任务
```base
source: "tasks"
view: table
filters:
- property: status
operator: not_equals
value: "done"
columns:
- property: title
display: "任务"
width: 250
- property: priority
display: "优先级"
width: 80
- property: due
display: "截止日期"
width: 100
- property: project
display: "项目"
width: 150
sort:
- property: priority
order: desc
- property: due
order: asc📊 按项目分组
base
source: "tasks"
view: table
group:
- property: project
columns:
- title
- status
- due
### 读书笔记库
```markdown
---
type: base
---
# 我的书架
## 📚 所有书籍
```base
source: "books"
view: cards
cover: cover
columns:
- property: title
display: "书名"
- property: author
display: "作者"
- property: rating
display: "评分"
- property: status
display: "状态"
filters:
- property: type
operator: equals
value: "book"
sort:
- property: date-added
order: desc📖 正在阅读
base
source: "books"
view: list
filters:
- property: status
operator: equals
value: "reading"
### 项目追踪
```markdown
---
type: base
---
# 项目管理
## 🚀 活跃项目
```base
source: "projects"
view: table
filters:
- property: status
operator: equals
value: "active"
columns:
- property: title
display: "项目名称"
width: 200
- property: progress
display: "进度"
width: 100
format: percentage
- property: start
display: "开始日期"
- property: end
display: "截止日期"
- property: team
display: "团队"
sort:
- property: end
order: asc📈 项目进度概览
base
source: "projects"
view: cards
columns:
- title
- progress
group:
- property: status
### 周计划
```markdown
---
type: base
---
# 本周计划
## 📅 本周任务
```base
source: "tasks"
view: calendar
date: due
filters:
- property: due
operator: after
value: "{{startOfWeek}}"
- conjunction: and
- property: due
operator: before
value: "{{endOfWeek}}"
columns:
- title
- priority✅ 本周完成
base
source: "tasks"
view: list
filters:
- property: completed-date
operator: after
value: "{{startOfWeek}}"
---
## 🔧 设置选项
### 默认视图
设置 → Core → Bases:
| 选项 | 说明 |
|------|------|
| 默认视图 | 新建 Base 的默认视图类型 |
| 行高 | 表格行高设置 |
| 显示封面 | 卡片视图是否显示封面 |
### 快捷键
| 快捷键 | 功能 |
|--------|------|
| `Ctrl/Cmd + N` | 新建行 |
| `Enter` | 编辑单元格 |
| `Escape` | 取消编辑 |
| `Delete` | 删除选中行 |
---
## ⚠️ 注意事项
### 性能考虑
- 大量笔记时,建议添加筛选条件
- 避免过于复杂的关联关系
- 定期清理不再使用的数据
### 兼容性
- Bases 使用标准 YAML 属性
- 与 Dataview 可共存
- 导出时保留所有属性数据
---
## 🔗 相关阅读
- [Properties 完整指南](/advanced/properties-guide)
- [Dataview 速查表](/reference/dataview-cheatsheet)
- [Front Matter 速查表](/reference/frontmatter-cheatsheet)