Datenbank (m77.db)
Collections, Abfragen und Daten pro Nutzer.
m77.db ist eine schemalose Dokumentdatenbank. Collections werden automatisch angelegt, sobald du zum ersten Mal hineinschreibst.
Anlegen
const task = await m77.db.create('tasks', { title: 'Ship v2', done: false, priority: 2 });
// → { id, title, done, priority, createdAt, updatedAt, ownerId }Lesen
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 } });Filter
where vergleicht Felder exakt und unterstützt Operatoren:
| Operator | Beispiel |
|---|---|
| gleich | { status: 'paid' } |
$ne | { status: { $ne: 'draft' } } |
$in | { status: { $in: ['sent', 'paid'] } } |
$gt / $gte / $lt / $lte | { total: { $gte: 100 } } |
$contains | { name: { $contains: 'ann' } } (ohne Groß-/Kleinschreibung) |
sort nimmt einen Feldnamen, mit - davor für absteigend (Standard -createdAt). limit geht bis 500, offset blättert.
Aktualisieren & löschen
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);Daten pro Nutzer
Datensätze, die angelegt werden, während ein Nutzer angemeldet ist, bekommen eine ownerId. Mit mine: true fragst du nur die Datensätze des aktuellen Nutzers ab:
const myNotes = await m77.db.list('notes', { mine: true });Datensätze mit Besitzer können nur von diesem Besitzer geändert oder gelöscht werden.
Zugriffsregeln
Jede Collection ist standardmäßig öffentlich. Schränke sie pro Collection im Tab Daten des Builders ein oder lass deine App Regeln in einer Datei m77.config.json festlegen:
{ "rules": { "notes": "private", "menu": "readonly", "orders": "auth" } }| Regel | Wer lesen darf | Wer schreiben darf |
|---|---|---|
public | Alle | Alle |
auth | Angemeldete App-Nutzer | Angemeldete App-Nutzer |
private | Jeder Nutzer sieht nur seine eigenen Datensätze | Nur der Besitzer des Datensatzes |
readonly | Alle | Nur du, im Tab Daten |
Limits
Datensätze bis je 1 MB; 50.000 Datensätze pro App (für mehr kontaktiere uns).