Database (m77.db)
Collezioni, query e dati per utente.
m77.db è un database documentale senza schema. Le collezioni vengono create automaticamente la prima volta che ci scrivi.
Creare
const task = await m77.db.create('tasks', { title: 'Ship v2', done: false, priority: 2 });
// → { id, title, done, priority, createdAt, updatedAt, ownerId }Leggere
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 confronta i campi in modo esatto e supporta operatori:
| Operatore | Esempio |
|---|---|
| uguale | { status: 'paid' } |
$ne | { status: { $ne: 'draft' } } |
$in | { status: { $in: ['sent', 'paid'] } } |
$gt / $gte / $lt / $lte | { total: { $gte: 100 } } |
$contains | { name: { $contains: 'ann' } } (senza distinzione tra maiuscole e minuscole) |
sort accetta il nome di un campo, preceduto da - per l'ordine decrescente (predefinito -createdAt). limit arriva fino a 500, offset serve per la paginazione.
Aggiornare ed eliminare
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);Dati per utente
I record creati mentre un utente ha effettuato l'accesso ricevono un ownerId. Interroga solo i record dell'utente corrente con mine: true:
const myNotes = await m77.db.list('notes', { mine: true });I record con un proprietario possono essere aggiornati o eliminati solo da quel proprietario.
Regole di accesso
Ogni collezione è pubblica per impostazione predefinita. Limitala collezione per collezione nella scheda Dati dell'editor, oppure lascia che la tua app dichiari le regole in un file m77.config.json:
{ "rules": { "notes": "private", "menu": "readonly", "orders": "auth" } }| Regola | Chi può leggere | Chi può scrivere |
|---|---|---|
public | Chiunque | Chiunque |
auth | Utenti dell'app che hanno effettuato l'accesso | Utenti dell'app che hanno effettuato l'accesso |
private | Ogni utente vede solo i propri record | Solo il proprietario del record |
readonly | Chiunque | Solo tu, dalla scheda Dati |
Limiti
Record fino a 1 MB ciascuno; 50.000 record per app (contattaci se te ne servono di più).