Baza podataka (m77.db)
Kolekcije, upiti i podaci po korisniku.
m77.db je dokumentna baza podataka bez sheme. Kolekcije se stvaraju automatski kad u njih prvi put zapišeš.
Stvaranje
const task = await m77.db.create('tasks', { title: 'Ship v2', done: false, priority: 2 });
// → { id, title, done, priority, createdAt, updatedAt, ownerId }Čitanje
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 } });Filtri
where uspoređuje polja točno i podržava operatore:
| Operator | Primjer |
|---|---|
| jednako | { status: 'paid' } |
$ne | { status: { $ne: 'draft' } } |
$in | { status: { $in: ['sent', 'paid'] } } |
$gt / $gte / $lt / $lte | { total: { $gte: 100 } } |
$contains | { name: { $contains: 'ann' } } (ne razlikuje velika i mala slova) |
sort prima naziv polja, s - ispred za silazni redoslijed (zadano -createdAt). limit ide do 500, a offset služi za straničenje.
Ažuriranje i brisanje
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);Podaci po korisniku
Zapisi stvoreni dok je korisnik prijavljen dobivaju ownerId. Dohvati samo zapise trenutačnog korisnika pomoću mine: true:
const myNotes = await m77.db.list('notes', { mine: true });Zapise s vlasnikom može ažurirati ili obrisati samo taj vlasnik.
Pravila pristupa
Svaka kolekcija je prema zadanim postavkama javna. Zaključaj je za svaku kolekciju zasebno na kartici Podaci u uređivaču ili pusti aplikaciju da definira pravila u datoteci m77.config.json:
{ "rules": { "notes": "private", "menu": "readonly", "orders": "auth" } }| Pravilo | Tko može čitati | Tko može pisati |
|---|---|---|
public | Bilo tko | Bilo tko |
auth | Prijavljeni korisnici aplikacije | Prijavljeni korisnici aplikacije |
private | Svaki korisnik vidi samo svoje zapise | Samo vlasnik zapisa |
readonly | Bilo tko | Samo ti, s kartice Podaci |
Ograničenja
Zapisi do 1 MB svaki; 50.000 zapisa po aplikaciji (javi nam se ako trebaš više).