Databáze (m77.db)
Kolekce, dotazy a data jednotlivých uživatelů.
m77.db je dokumentová databáze bez schématu. Kolekce se vytvoří automaticky, jakmile do nich poprvé zapíšeš.
Vytvoření
const task = await m77.db.create('tasks', { title: 'Ship v2', done: false, priority: 2 });
// → { id, title, done, priority, createdAt, updatedAt, ownerId }Čtení
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 porovnává pole přesně a podporuje operátory:
| Operátor | Příklad |
|---|---|
| rovná se | { status: 'paid' } |
$ne | { status: { $ne: 'draft' } } |
$in | { status: { $in: ['sent', 'paid'] } } |
$gt / $gte / $lt / $lte | { total: { $gte: 100 } } |
$contains | { name: { $contains: 'ann' } } (bez ohledu na velikost písmen) |
sort přijímá název pole, s - na začátku pro sestupné řazení (výchozí -createdAt). limit je nejvýš 500, offset stránkuje.
Úprava a mazání
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);Data jednotlivých uživatelů
Záznamy vytvořené, když je uživatel přihlášený, dostanou ownerId. Pouze záznamy aktuálního uživatele získáš pomocí mine: true:
const myNotes = await m77.db.list('notes', { mine: true });Záznamy s vlastníkem může upravit nebo smazat jen jejich vlastník.
Pravidla přístupu
Každá kolekce je ve výchozím stavu veřejná. Přístup můžeš omezit pro každou kolekci zvlášť v záložce Data v editoru, nebo nech aplikaci nadefinovat pravidla v souboru m77.config.json:
{ "rules": { "notes": "private", "menu": "readonly", "orders": "auth" } }| Pravidlo | Kdo může číst | Kdo může zapisovat |
|---|---|---|
public | Kdokoli | Kdokoli |
auth | Přihlášení uživatelé aplikace | Přihlášení uživatelé aplikace |
private | Každý uživatel vidí jen své záznamy | Jen vlastník záznamu |
readonly | Kdokoli | Jen ty, v záložce Data |
Limity
Každý záznam může mít nejvýš 1 MB; aplikace může mít až 50 000 záznamů (pokud potřebuješ víc, napiš nám).