lowdb-recursive
Version:
recursive extension based on lowdb
78 lines (69 loc) • 2.17 kB
JavaScript
var DataBase = require('./src/index')
var db = DataBase('./tmp/db.json')
var collection = [{ nombre: 'Villareal', numero: 1, carreras: [{ nombre: 'Fisico', rating: 4.3, cursos: [{ nombre: 'cuantica', id: 1 }, { nombre: 'algebra', id: 2 }] }, { nombre: 'Matematica', rating: 4, cursos: [{ nombre: 'algebra', id: 2 }, { nombre: 'Aritmetica', id: 3 }] }] }, { nombre: 'SanMarcos', numero: 2, carreras: [{ nombre: 'Medicina', rating: 9.6, cursos: [{ nombre: 'Quimica', id: 4 }, { nombre: 'Biologia', id: 5 }] }, { nombre: 'Metalurgia', rating: 5, cursos: [{ nombre: 'quimica', id: 4 }, { nombre: 'Fisica', id: 5 }] }] }]
/*
first create a folder ./tmp
*/
/*
run this command one time
*/
collection.forEach(function (document) {
db('universidades').push(document).write()
})
/* Result:
[ { nombre: 'Villareal',
numero: 1,
carreras: [ [Object], [Object] ] } ]
*/
// console.log(
// db('universidades')
// .chain()
// .whereAll({ 'carreras.cursos.nombre': 'cuantica' })
// .value()
// )
// /*
// [ { nombre: 'cuantica', id: 1 } ]
// */
// db('universidades').findAll({ 'carreras.cursos.nombre': 'cuantica' })
// // modifies all fields with cuantica value
// console.log(
// db('universidades')
// .chain()
// .updateAll({ 'carreras.cursos.nombre': 'cuantica' }, { nombre: 'mecanica' })
// .write()
// .value()
// )
// // or
// console.log(
// db('universidades')
// .chain()
// .findAll({ 'carreras.cursos.nombre': 'cuantica' })
// .updateAll({ nombre: 'mecanica' })
// .write()
// .value()
// )
// // push all fields with cuantica value at third level
// console.log(
// db('universidades')
// .chain()
// .pushAll({ 'carreras.cursos.nombre': 'cuantica' }, { nombre: 'javascript', id: 100 })
// .write()
// .value()
// )
// // or
// console.log(
// db('universidades')
// .chain()
// .findAll({ 'carreras.rating': 4.3 })
// .pushAll({ cursos: { nombre: 'javascript', id: 100 } })
// .write()
// .value()
// )
// // remove value at third level
// console.log(
// db('universidades')
// .chain()
// .removeAll({ 'carreras.cursos.nombre': 'cuantica' })
// .write()
// .value()
// )