Database (m77.db)
Collecties, queries en data per gebruiker.
m77.db is een schemaloze documentdatabase. Collecties worden automatisch aangemaakt zodra je er voor het eerst naar schrijft.
Aanmaken
const task = await m77.db.create('tasks', { title: 'Ship v2', done: false, priority: 2 });
// → { id, title, done, priority, createdAt, updatedAt, ownerId }Lezen
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 } });Filters
where vergelijkt velden exact en ondersteunt operatoren:
| Operator | Voorbeeld |
|---|---|
| gelijk aan | { status: 'paid' } |
$ne | { status: { $ne: 'draft' } } |
$in | { status: { $in: ['sent', 'paid'] } } |
$gt / $gte / $lt / $lte | { total: { $gte: 100 } } |
$contains | { name: { $contains: 'ann' } } (hoofdletterongevoelig) |
sort neemt een veldnaam, met - ervoor voor aflopend (standaard -createdAt). limit gaat tot 500, offset pagineert.
Bijwerken & verwijderen
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 per gebruiker
Records die worden aangemaakt terwijl een gebruiker is ingelogd, krijgen een ownerId. Vraag alleen de records van de huidige gebruiker op met mine: true:
const myNotes = await m77.db.list('notes', { mine: true });Records met een eigenaar kunnen alleen door die eigenaar worden bijgewerkt of verwijderd.
Toegangsregels
Elke collectie is standaard openbaar. Scherm hem per collectie af in het tabblad Data van de builder, of laat je app regels vastleggen in een bestand m77.config.json:
{ "rules": { "notes": "private", "menu": "readonly", "orders": "auth" } }| Regel | Wie mag lezen | Wie mag schrijven |
|---|---|---|
public | Iedereen | Iedereen |
auth | Ingelogde app-gebruikers | Ingelogde app-gebruikers |
private | Elke gebruiker ziet alleen zijn eigen records | Alleen de eigenaar van het record |
readonly | Iedereen | Alleen jij, via het tabblad Data |
Limieten
Records tot 1 MB per stuk; 50.000 records per app (neem contact op voor meer).