База данных (m77.db)
Коллекции, запросы и данные каждого пользователя.
m77.db — документная база данных без схемы. Коллекции создаются автоматически при первой записи.
Создание
const task = await m77.db.create('tasks', { title: 'Ship v2', done: false, priority: 2 });
// → { id, title, done, priority, createdAt, updatedAt, ownerId }Чтение
const all = await m77.db.list('tasks');
const open = await m77.db.list('tasks', { where: { done: false }, sort: '-priority', limit: 50 });
const one = await m77.db.get('tasks', id); // null if missing
const count = await m77.db.count('tasks', { where: { done: true } });Фильтры
where сравнивает поля на точное совпадение и поддерживает операторы:
| Оператор | Пример |
|---|---|
| равно | { status: 'paid' } |
$ne | { status: { $ne: 'draft' } } |
$in | { status: { $in: ['sent', 'paid'] } } |
$gt / $gte / $lt / $lte | { total: { $gte: 100 } } |
$contains | { name: { $contains: 'ann' } } (без учёта регистра) |
sort принимает имя поля, с - в начале для сортировки по убыванию (по умолчанию -createdAt). limit — до 500, offset — для постраничного вывода.
Обновление и удаление
await m77.db.update('tasks', id, { done: true }); // shallow merge
await m77.db.replace('tasks', id, { title: 'New' }); // overwrite all fields
await m77.db.remove('tasks', id);Данные каждого пользователя
Записи, созданные, пока пользователь авторизован, получают ownerId. Запрашивайте только записи текущего пользователя с помощью mine: true:
const myNotes = await m77.db.list('notes', { mine: true });Записи с владельцем может изменить или удалить только их владелец.
Правила доступа
Каждая коллекция по умолчанию публичная. Ограничьте доступ к отдельной коллекции на вкладке Данные в конструкторе или позвольте приложению задать правила в файле m77.config.json:
{ "rules": { "notes": "private", "menu": "readonly", "orders": "auth" } }| Правило | Кто может читать | Кто может записывать |
|---|---|---|
public | Кто угодно | Кто угодно |
auth | Авторизованные пользователи приложения | Авторизованные пользователи приложения |
private | Каждый видит только свои записи | Только владелец записи |
readonly | Кто угодно | Только вы, из вкладки Данные |
Ограничения
Записи до 1 МБ каждая; 50 000 записей на приложение (свяжитесь с нами, если нужно больше).