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érateur | Exemple |
|---|---|
| é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ègle | Qui peut lire | Qui peut écrire |
|---|---|---|
public | Tout le monde | Tout le monde |
auth | Utilisateurs connectés de l'application | Utilisateurs connectés de l'application |
private | Chacun ne voit que ses propres enregistrements | Uniquement le propriétaire de l'enregistrement |
readonly | Tout le monde | Vous seul, depuis l'onglet Données |
Limites
Enregistrements jusqu'à 1 Mo chacun ; 50 000 enregistrements par application (contactez-nous pour plus).