Awesome
lowdb-recursive
Quick dot-notation seeker
if you know for the first time lowdb, please go here
Add Documents
var low = require('lowdb-recursive')
var db = low('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": "San Marcos",
"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
}
]
}
]
}
]
collection.forEach(function(document){
db.get('universidades').push(document).write();
});
Find
/*
[ { nombre: 'Villareal',
numero: 1,
carreras: [ [Object], [Object] ] } ]
*/
db.get('universidades').whereAll({ 'carreras.cursos.nombre': 'cuantica'})
//or
/*
[ { nombre: 'cuantica', id: 1 } ]
*/
db.get('universidades').findAll({ 'carreras.cursos.nombre': 'cuantica'})
Update and get values
db.get('universidades')
.chain()
.updateAll({'carreras.cursos.nombre': 'cuantica'}, {'nombre': 'mecanica'})
.write()
.value()
//or
db.get('universidades')
.chain()
.findAll('carreras.cursos.nombre': 'cuantica')
.updateAll({'nombre': 'mecanica'})
.write()
.value()
Push value
db.get('universidades')
.chain()
.pushAll({'carreras.cursos.nombre': 'cuantica'}, {'nombre': 'javascript', 'id': 100})
.write()
.value()
//or
db.get('universidades')
.chain()
.findAll({"carreras.rating": 4.3})
.pushAll({"cursos": {'nombre': 'javascript', 'id': 100})
.write()
.value()
Remove value
db.get('universidades')
.chain()
.removeAll({'carreras.cursos.nombre': 'cuantica'})
.write()
.value()