Documentação
Introdução
O sorla-db é ótimo de explorar de forma interativa: abra as devtools do navegador (F12) ou um REPL do Node e experimente consultas com dados reais antes de escrever código.
No Node
npm install sorla-db
node
> const sorla = require('sorla-db')
> const app = new sorla(); app.useDb('repl'); app.db.createCollection('c')
> app.db.c.insertMany([{ n: 1 }, { n: 2 }, { n: 3 }])
[ '…', '…', '…' ]
> app.db.c.find({ n: { $gt: 1 } }).toArray()
[ { n: 2, _id: '…' }, { n: 3, _id: '…' } ]
> console.table(app.db.c.find({}).toArray())
Comandos de uma linha para uma verificação rápida:
node -e "const s=require('sorla-db');const a=new s();a.useDb('x');a.db.createCollection('c');a.db.c.insertMany([{n:1},{n:5}]);console.log(a.db.c.count({n:{\$gt:2}}))"
Carregue um arquivo JSON e faça consultas nele:
const fs = require('node:fs');
app.db.createCollection('orders');
app.db.orders.insertMany(JSON.parse(fs.readFileSync('orders.json', 'utf8')));
console.table(app.db.orders.find({ total: { $gt: 1000 } }).sort({ total: -1 }).limit(10).toArray());
Os erros são fáceis de ler no console
As mensagens dizem o que está errado e como corrigir:
Error: The update can only contain operators, use replaceOne() to replace a document (found "price")
Error: The filter must be a query object, use {} to match every document
ValidationError: Invalid document: email must be a valid email (and 1 more)
Error: schema.properties.a: unknown keyword "tpye"
Error: Sort direction of "age" must be 1 or -1
Objetos ValidationError têm errors com todos os problemas; expanda-os no console ou use
console.table(error.errors).