Backend et SDK

Base de données (m77.db)

Collections, requêtes et données par utilisateur.

m77.db est une base de données documentaire sans schéma. Les collections sont créées automatiquement la première fois que vous y écrivez.

Créer

const task = await m77.db.create('tasks', { title: 'Ship v2', done: false, priority: 2 });
// → { id, title, done, priority, createdAt, updatedAt, ownerId }

Lire

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 } });

Filtres

where compare les champs à l'identique et prend en charge des opérateurs :

OpérateurExemple
égal{ status: 'paid' }
$ne{ status: { $ne: 'draft' } }
$in{ status: { $in: ['sent', 'paid'] } }
$gt / $gte / $lt / $lte{ total: { $gte: 100 } }
$contains{ name: { $contains: 'ann' } } (insensible à la casse)

sort prend un nom de champ, précédé de - pour l'ordre décroissant (par défaut -createdAt). limit va jusqu'à 500, offset sert à paginer.

Modifier et supprimer

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);

Données par utilisateur

Les enregistrements créés pendant qu'un utilisateur est connecté reçoivent un ownerId. Interrogez uniquement les enregistrements de l'utilisateur actuel avec mine: true :

const myNotes = await m77.db.list('notes', { mine: true });

Un enregistrement qui a un propriétaire ne peut être modifié ou supprimé que par lui.

Règles d'accès

Chaque collection est publique par défaut. Verrouillez-la collection par collection dans l'onglet Données de l'outil de création, ou laissez votre application déclarer des règles dans un fichier m77.config.json :

{ "rules": { "notes": "private", "menu": "readonly", "orders": "auth" } }
RègleQui peut lireQui peut écrire
publicTout le mondeTout le monde
authUtilisateurs connectés de l'applicationUtilisateurs connectés de l'application
privateChacun ne voit que ses propres enregistrementsUniquement le propriétaire de l'enregistrement
readonlyTout le mondeVous seul, depuis l'onglet Données

Limites

Enregistrements jusqu'à 1 Mo chacun ; 50 000 enregistrements par application (contactez-nous pour plus).