Bază de date (m77.db)
Colecții, interogări și date per utilizator.
m77.db este o bază de date de documente fără schemă. Colecțiile se creează automat prima dată când scrii în ele.
Creare
const task = await m77.db.create('tasks', { title: 'Ship v2', done: false, priority: 2 });
// → { id, title, done, priority, createdAt, updatedAt, ownerId }Citire
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 potrivește câmpurile exact și acceptă operatori:
| Operator | Exemplu |
|---|---|
| egal | { status: 'paid' } |
$ne | { status: { $ne: 'draft' } } |
$in | { status: { $in: ['sent', 'paid'] } } |
$gt / $gte / $lt / $lte | { total: { $gte: 100 } } |
$contains | { name: { $contains: 'ann' } } (fără diferență între majuscule și minuscule) |
sort primește un nume de câmp, cu - în față pentru ordine descrescătoare (implicit -createdAt). limit merge până la 500, iar offset paginează.
Actualizare și ștergere
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);Date per utilizator
Înregistrările create cât timp un utilizator e autentificat primesc un ownerId. Interoghează doar înregistrările utilizatorului curent cu mine: true:
const myNotes = await m77.db.list('notes', { mine: true });Înregistrările cu proprietar pot fi actualizate sau șterse doar de acel proprietar.
Reguli de acces
Fiecare colecție este publică în mod implicit. Restricționeaz-o per colecție în fila Date din editor sau lasă aplicația să declare reguli într-un fișier m77.config.json:
{ "rules": { "notes": "private", "menu": "readonly", "orders": "auth" } }| Regulă | Cine poate citi | Cine poate scrie |
|---|---|---|
public | Oricine | Oricine |
auth | Utilizatorii autentificați ai aplicației | Utilizatorii autentificați ai aplicației |
private | Fiecare utilizator își vede doar înregistrările proprii | Doar proprietarul înregistrării |
readonly | Oricine | Doar tu, din fila Date |
Limite
Înregistrări de până la 1 MB fiecare; 50.000 de înregistrări per aplicație (contactează-ne dacă ai nevoie de mai multe).