База данни (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 MB всеки; 50 000 записа на приложение (свържи се с нас, ако ти трябват повече).