Backend ja SDK

Tietokanta (m77.db)

Kokoelmat, kyselyt ja käyttäjäkohtainen data.

m77.db on skeematon dokumenttitietokanta. Kokoelmat luodaan automaattisesti, kun kirjoitat niihin ensimmäisen kerran.

Luominen

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

Lukeminen

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

Suodattimet

where vertaa kenttiä täsmällisesti ja tukee operaattoreita:

OperaattoriEsimerkki
on yhtä kuin{ status: 'paid' }
$ne{ status: { $ne: 'draft' } }
$in{ status: { $in: ['sent', 'paid'] } }
$gt / $gte / $lt / $lte{ total: { $gte: 100 } }
$contains{ name: { $contains: 'ann' } } (kirjainkoolla ei väliä)

sort ottaa kentän nimen, ja --etuliite tarkoittaa laskevaa järjestystä (oletus -createdAt). limit on enintään 500, offset sivuttaa.

Päivittäminen ja poistaminen

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

Käyttäjäkohtainen data

Tietueet, jotka luodaan käyttäjän ollessa kirjautuneena, saavat ownerId:n. Hae vain nykyisen käyttäjän tietueet mine: true -asetuksella:

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

Tietueita, joilla on omistaja, voi päivittää tai poistaa vain omistaja itse.

Käyttöoikeussäännöt

Jokainen kokoelma on oletuksena julkinen. Rajaa sitä kokoelmakohtaisesti editorin Data-välilehdellä tai anna sovelluksesi määritellä säännöt m77.config.json-tiedostossa:

{ "rules": { "notes": "private", "menu": "readonly", "orders": "auth" } }
SääntöKuka voi lukeaKuka voi kirjoittaa
publicKuka tahansaKuka tahansa
authKirjautuneet sovelluksen käyttäjätKirjautuneet sovelluksen käyttäjät
privateJokainen näkee vain omat tietueensaVain tietueen omistaja
readonlyKuka tahansaVain sinä, Data-välilehdeltä

Rajoitukset

Tietueet enintään 1 Mt kukin; 50 000 tietuetta sovellusta kohden (ota yhteyttä, jos tarvitset enemmän).