Obsidian из коробки не умеет строить таблицы и фильтровать записи — но с плагином Dataview и системой YAML-свойств он превращается в гибкую базу данных, где каждая заметка становится записью с полями. Если вы пытаетесь вывести список книг, задач или контактов в виде таблицы, а запрос возвращает пустой результат, причина почти всегда в неправильно оформленных свойствах или отключённой поддержке JavaScript-запросов в настройках плагина.
В этом руководстве разберём, как организовать базу данных в Obsidian без привязки к конкретной версии программы: структуру хранилища, свойства заметок, запросы Dataview, шаблоны и типичные ошибки. Интерфейс и названия пунктов меню могут немного отличаться в зависимости от версии приложения — сверяйтесь с тем, что видите на экране.
Как устроена база данных в Obsidian
В основе лежит простая идея: одна заметка = одна запись. Каждая заметка получает набор свойств (полей), а запросы собирают из этих записей таблицы, списки и календари. Никакого скрытого формата нет — всё хранится в обычных markdown-файлах, которые можно открыть любым текстовым редактором.
Свойства записываются в начале файла в блоке --- — это так называемый YAML frontmatter. Современные версии Obsidian показывают его как удобную панель «Свойства» над текстом заметки, но под капотом это всё тот же текстовый блок.
---
название: Мастер и Маргарита
автор: Булгаков
статус: прочитано
оценка: 9
Такой подход даёт ключевое преимущество перед классическими СУБД: данные принадлежат вам, не зависят от облака и не исчезнут, если сервис закроется. Расплата — отсутствие встроенной проверки типов и реляционных связей: дисциплину заполнения полей придётся поддерживать самостоятельно.
Подготовка хранилища и папок
Прежде чем писать запросы, определите структуру. Рабочая практика — выделить под каждый тип записей отдельную папку, чтобы запросы могли фильтровать по пути, а не перебирать всё хранилище.
- 📚
Библиотека/— книги, статьи, фильмы с полями «автор», «статус», «оценка»; - ✅
Проекты/— по одной заметке на проект со статусом и дедлайном; - 👤
Контакты/— люди и организации с полями связи; - 🗒️
Дневник/— ежедневные заметки, из которых удобно собирать статистику.
Не обязательно выстраивать идеальную иерархию с первого дня. Достаточно одного правила: записи одного типа лежат в одной папке или помечены одним тегом. Именно на этом фильтре будут строиться все последующие запросы.
Настройка свойств заметок
Чтобы добавить поле, откройте заметку и нажмите Добавить свойство в верхней части редактора (либо используйте команду через палитру команд Ctrl+P). Obsidian предложит выбрать тип: текст, список, число, флажок, дата или время.
Типы имеют значение. Если оценку записать текстом оценка: отлично, сортировка и сравнение по ней работать не будут. Числа храните числами, даты — в формате ГГГГ-ММ-ДД, а множественные значения — списком.
⚠️ Внимание: опечатка в имени свойства создаёт фактически новое поле. Если в одних заметках написаностатус, а в другихстатуc(с латинской «c»), запрос увидит только часть записей. Используйте автодополнение свойств и периодически проверяйте список всех полей хранилища.
Для единообразия подключите шаблоны: встроенный плагин «Шаблоны» или сторонний Templater. Создайте файл-заготовку с готовым блоком свойств и вставляйте его в новые записи — это избавит от расхождений в названиях полей.
☑️ Подготовка базы данных в Obsidian
Плагин Dataview: установка и первые запросы
Dataview — сторонний плагин, де-факто стандарт для запросов в Obsidian. Установите его через Настройки → Сторонние плагины → Обзор, найдя по имени, затем включите. Точные названия пунктов могут отличаться в вашей версии — ориентируйтесь на раздел управления плагинами сообщества.
Простейший запрос — таблица всех книг из папки. Вставьте в любую заметку блок кода:
```dataview
TABLE автор, статус, оценка
FROM "Библиотека"
WHERE статус = "прочитано"
SORT оценка DESC
```
Если вместо таблицы вы видите текст запроса или пустоту, проверьте три вещи: плагин включён, блок открывается тремя обратными кавычками со словом dataview, и путь в FROM совпадает с реальным именем папки с учётом регистра.
Полезные типы запросов
Dataview поддерживает четыре формы вывода: TABLE (таблица), LIST (список), TASK (задачи) и CALENDAR (календарь). Для базы данных чаще всего нужны первые два.
| Задача | Конструкция запроса | Результат |
|---|---|---|
| Все незавершённые проекты | LIST WHERE статус != "завершён" | Список ссылок на заметки |
| Топ по оценке | TABLE ... SORT оценка DESC LIMIT 10 | Таблица из 10 записей |
| Группировка по автору | GROUP BY автор | Секции по значениям поля |
| Записи за период | WHERE дата >= date("2026-01-01") | Фильтр по дате |
| Все невыполненные задачи | TASK WHERE !completed | Чек-листы из всех заметок |
Вычисляемые поля тоже доступны: например, TABLE оценка * 10 AS "Баллы" создаст колонку, которой нет в исходных заметках. Это удобно для сводных показателей без дублирования данных.
Что такое DataviewJS и когда он нужен
Помимо базового синтаксиса, Dataview поддерживает JavaScript-запросы (блок dataviewjs). Они нужны для сложной логики: объединения данных из разных папок, нестандартного форматирования, работы с датами. Для большинства каталогов хватает обычных запросов — переходите на JS только когда упёрлись в ограничение. Учтите: выполнение JS-запросов может требовать отдельного разрешения в настройках плагина.
Связи между записями
Аналог внешних ключей в Obsidian — внутренние ссылки в свойствах. Если в заметке книги указать автор: "[[Булгаков]]", а в папке есть заметка об авторе, Dataview сможет строить запросы по обе стороны связи.
Обратную сторону показывают обратные ссылки (backlinks) — встроенная панель Obsidian, где видно, какие записи ссылаются на текущую. Для базы контактов это готовый ответ на вопрос «с какими проектами связан человек» без единого запроса.
⚠️ Внимание: переименование заметки обновляет обычные ссылки в тексте автоматически, но ссылки внутри YAML-свойств обновляются не всегда — поведение зависит от версии приложения и настроек. После массового переименования проверьте ключевые записи на «битые» связи.
Типичные ошибки и их решение
Самая частая жалоба — пустая таблица при корректном запросе. Причины почти всегда одни и те же: несовпадение имени папки в FROM, опечатка в имени свойства или неверный тип значения (число записано текстом, дата — в произвольном формате).
Вторая группа проблем — производительность. На хранилищах из тысяч заметок тяжёлые запросы без фильтра FROM могут заметно подтормаживать. Всегда ограничивайте выборку папкой или тегом — запрос без FROM сканирует всё хранилище целиком.
- 🔍 Проверьте, что плагин включён и обновлён до актуальной версии;
- 📂 Сверьте путь в
FROMс реальным именем папки; - ✏️ Убедитесь, что имена свойств идентичны во всех записях;
- 🔢 Проверьте типы: числа без кавычек, даты в формате ISO.
Если запрос выдаёт ошибку синтаксиса, упрощайте его по одной строке: сначала оставьте только TABLE и FROM, затем возвращайте условия. Так локализуется проблемное место за пару минут.
Когда Obsidian-база не подходит
Честно обозначим границы. Obsidian — не реляционная СУБД: здесь нет транзакций, строгой схемы, совместного редактирования в реальном времени и контроля целостности на уровне движка. Для учёта склада, финансов или данных, с которыми одновременно работает команда, лучше подойдут специализированные инструменты.
Зато для личных каталогов, базы знаний, дневников и проектов одного человека связка «markdown + свойства + Dataview» даёт редкое сочетание: гибкость базы данных при полной переносимости файлов.
Частые вопросы
Можно ли использовать Obsidian как базу данных без плагинов?
Частично. Встроенный поиск поддерживает фильтры по свойствам и путям, а панель обратных ссылок показывает связи. Но таблицы, сортировку и агрегацию без Dataview или аналогичного плагина не получить.
Безопасен ли Dataview — он не испортит заметки?
Запросы Dataview только читают данные и не изменяют файлы. Риск представляют разве что сторонние скрипты в dataviewjs из непроверенных источников — не вставляйте чужой код, не понимая, что он делает.
Как сделать, чтобы новые записи автоматически получали нужные поля?
Используйте шаблоны: встроенный плагин «Шаблоны» или Templater. Создайте заготовку с готовым блоком свойств и назначьте её для папки либо вставляйте вручную при создании заметки.
Работает ли база данных на мобильной версии Obsidian?
Да, Dataview доступен и на мобильных устройствах, хотя на слабых устройствах тяжёлые запросы по большому хранилищу могут выполняться медленнее. Ограничивайте выборки папками.
Что будет с базой, если я удалю Dataview?
Данные никуда не денутся — свойства останутся в markdown-файлах в виде текста. Исчезнет только отображение таблиц: блоки запросов превратятся в обычный код.