Obsidian как база данных: полное руководство по настройке

Obsidian из коробки не умеет строить таблицы и фильтровать записи — но с плагином Dataview и системой YAML-свойств он превращается в гибкую базу данных, где каждая заметка становится записью с полями. Если вы пытаетесь вывести список книг, задач или контактов в виде таблицы, а запрос возвращает пустой результат, причина почти всегда в неправильно оформленных свойствах или отключённой поддержке JavaScript-запросов в настройках плагина.

В этом руководстве разберём, как организовать базу данных в Obsidian без привязки к конкретной версии программы: структуру хранилища, свойства заметок, запросы Dataview, шаблоны и типичные ошибки. Интерфейс и названия пунктов меню могут немного отличаться в зависимости от версии приложения — сверяйтесь с тем, что видите на экране.

Как устроена база данных в Obsidian

В основе лежит простая идея: одна заметка = одна запись. Каждая заметка получает набор свойств (полей), а запросы собирают из этих записей таблицы, списки и календари. Никакого скрытого формата нет — всё хранится в обычных markdown-файлах, которые можно открыть любым текстовым редактором.

Свойства записываются в начале файла в блоке --- — это так называемый YAML frontmatter. Современные версии Obsidian показывают его как удобную панель «Свойства» над текстом заметки, но под капотом это всё тот же текстовый блок.

---

название: Мастер и Маргарита

автор: Булгаков

статус: прочитано

оценка: 9

Такой подход даёт ключевое преимущество перед классическими СУБД: данные принадлежат вам, не зависят от облака и не исчезнут, если сервис закроется. Расплата — отсутствие встроенной проверки типов и реляционных связей: дисциплину заполнения полей придётся поддерживать самостоятельно.

Подготовка хранилища и папок

Прежде чем писать запросы, определите структуру. Рабочая практика — выделить под каждый тип записей отдельную папку, чтобы запросы могли фильтровать по пути, а не перебирать всё хранилище.

  • 📚 Библиотека/ — книги, статьи, фильмы с полями «автор», «статус», «оценка»;
  • Проекты/ — по одной заметке на проект со статусом и дедлайном;
  • 👤 Контакты/ — люди и организации с полями связи;
  • 🗒️ Дневник/ — ежедневные заметки, из которых удобно собирать статистику.

Не обязательно выстраивать идеальную иерархию с первого дня. Достаточно одного правила: записи одного типа лежат в одной папке или помечены одним тегом. Именно на этом фильтре будут строиться все последующие запросы.

Настройка свойств заметок

Чтобы добавить поле, откройте заметку и нажмите Добавить свойство в верхней части редактора (либо используйте команду через палитру команд Ctrl+P). Obsidian предложит выбрать тип: текст, список, число, флажок, дата или время.

Типы имеют значение. Если оценку записать текстом оценка: отлично, сортировка и сравнение по ней работать не будут. Числа храните числами, даты — в формате ГГГГ-ММ-ДД, а множественные значения — списком.

⚠️ Внимание: опечатка в имени свойства создаёт фактически новое поле. Если в одних заметках написано статус, а в других статуc (с латинской «c»), запрос увидит только часть записей. Используйте автодополнение свойств и периодически проверяйте список всех полей хранилища.

Для единообразия подключите шаблоны: встроенный плагин «Шаблоны» или сторонний Templater. Создайте файл-заготовку с готовым блоком свойств и вставляйте его в новые записи — это избавит от расхождений в названиях полей.

☑️ Подготовка базы данных в Obsidian

Выполнено: 0 / 5

Плагин Dataview: установка и первые запросы

Dataview — сторонний плагин, де-факто стандарт для запросов в Obsidian. Установите его через Настройки → Сторонние плагины → Обзор, найдя по имени, затем включите. Точные названия пунктов могут отличаться в вашей версии — ориентируйтесь на раздел управления плагинами сообщества.

Простейший запрос — таблица всех книг из папки. Вставьте в любую заметку блок кода:

```dataview

TABLE автор, статус, оценка

FROM "Библиотека"

WHERE статус = "прочитано"

SORT оценка DESC

```

Если вместо таблицы вы видите текст запроса или пустоту, проверьте три вещи: плагин включён, блок открывается тремя обратными кавычками со словом dataview, и путь в FROM совпадает с реальным именем папки с учётом регистра.

📊 Для чего вы используете (или планируете) базу данных в Obsidian?
Каталог книг и фильмов
Управление задачами и проектами
CRM и база контактов
База знаний и конспекты

Полезные типы запросов

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-файлах в виде текста. Исчезнет только отображение таблиц: блоки запросов превратятся в обычный код.