Databáza (m77.db)
Kolekcie, dopyty a dáta jednotlivých používateľov.
m77.db je dokumentová databáza bez schémy. Kolekcie sa vytvoria automaticky, keď do nich prvýkrát zapíšeš.
Vytvorenie
const task = await m77.db.create('tasks', { title: 'Ship v2', done: false, priority: 2 });
// → { id, title, done, priority, createdAt, updatedAt, ownerId }Čítanie
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 } });Filtre
where porovnáva polia presne a podporuje operátory:
| Operátor | Príklad |
|---|---|
| rovná sa | { status: 'paid' } |
$ne | { status: { $ne: 'draft' } } |
$in | { status: { $in: ['sent', 'paid'] } } |
$gt / $gte / $lt / $lte | { total: { $gte: 100 } } |
$contains | { name: { $contains: 'ann' } } (bez ohľadu na veľkosť písmen) |
sort prijíma názov poľa, s - na začiatku pre zostupné radenie (predvolene -createdAt). limit je najviac 500, offset stránkuje.
Úprava a mazanie
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);Dáta jednotlivých používateľov
Záznamy vytvorené, keď je používateľ prihlásený, dostanú ownerId. Iba záznamy aktuálneho používateľa získaš pomocou mine: true:
const myNotes = await m77.db.list('notes', { mine: true });Záznamy s vlastníkom môže upraviť alebo vymazať iba ich vlastník.
Pravidlá prístupu
Každá kolekcia je predvolene verejná. Uzamkni ju pre každú kolekciu zvlášť na karte Dáta v editore, alebo nechaj aplikáciu deklarovať pravidlá v súbore m77.config.json:
{ "rules": { "notes": "private", "menu": "readonly", "orders": "auth" } }| Pravidlo | Kto môže čítať | Kto môže zapisovať |
|---|---|---|
public | Ktokoľvek | Ktokoľvek |
auth | Prihlásení používatelia aplikácie | Prihlásení používatelia aplikácie |
private | Každý používateľ vidí iba svoje záznamy | Iba vlastník záznamu |
readonly | Ktokoľvek | Iba ty, z karty Dáta |
Limity
Záznamy do 1 MB každý; 50 000 záznamov na aplikáciu (ak potrebuješ viac, napíš nám).