Baza danych (m77.db)
Kolekcje, zapytania i dane każdego użytkownika.
m77.db to bezschematowa baza dokumentów. Kolekcje tworzą się automatycznie przy pierwszym zapisie.
Tworzenie
const task = await m77.db.create('tasks', { title: 'Ship v2', done: false, priority: 2 });
// → { id, title, done, priority, createdAt, updatedAt, ownerId }Odczyt
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 } });Filtry
where dopasowuje pola dokładnie i obsługuje operatory:
| Operator | Przykład |
|---|---|
| równa się | { status: 'paid' } |
$ne | { status: { $ne: 'draft' } } |
$in | { status: { $in: ['sent', 'paid'] } } |
$gt / $gte / $lt / $lte | { total: { $gte: 100 } } |
$contains | { name: { $contains: 'ann' } } (bez rozróżniania wielkości liter) |
sort przyjmuje nazwę pola, z - na początku dla kolejności malejącej (domyślnie -createdAt). limit to maksymalnie 500, offset służy do stronicowania.
Aktualizacja i usuwanie
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);Dane każdego użytkownika
Rekordy utworzone, gdy użytkownik jest zalogowany, dostają ownerId. Pobierz tylko rekordy bieżącego użytkownika za pomocą mine: true:
const myNotes = await m77.db.list('notes', { mine: true });Rekordy z właścicielem może aktualizować lub usuwać tylko ich właściciel.
Reguły dostępu
Każda kolekcja jest domyślnie publiczna. Zablokuj ją osobno w zakładce Dane kreatora albo pozwól aplikacji zadeklarować reguły w pliku m77.config.json:
{ "rules": { "notes": "private", "menu": "readonly", "orders": "auth" } }| Reguła | Kto może czytać | Kto może zapisywać |
|---|---|---|
public | Każdy | Każdy |
auth | Zalogowani użytkownicy aplikacji | Zalogowani użytkownicy aplikacji |
private | Każdy użytkownik widzi tylko swoje rekordy | Tylko właściciel rekordu |
readonly | Każdy | Tylko Ty, z zakładki Dane |
Limity
Rekordy do 1 MB każdy; 50 000 rekordów na aplikację (napisz do nas, jeśli potrzebujesz więcej).