Es una base de datos de documentos de alta disponibilidad, y alta performance.
en
npm install --save mongodb
var MongoClient = require('mongodb').MongoClient;
var url = 'mongodb://localhost:27017/test';
MongoClient.connect(url, function(err, db) {
//El Código va aquí
});
1. Instalar el driver para nodejs.
2. Incluir MongoClient, y conectar a la base de datos.
en
db.collection('personas').insertOne({
nombre: 'Homero',
apellido: 'Simpson',
direccion: {
calle: 'Av. Siempre Viva',
numero: 742
},
telefono: [
{cod: '07', num: '555-4555'},
{cod: '07', num: '555-4553'}
]
}, function(err, result) {
//Resultado del insertOne
});
3. Insertar un documento
db.collection('objetos').insertMany([
{
obj: 'Heladera',
color: 'blanco',
watts: 480
},
{
obj: 'Mesa Exterior',
material: 'Vidrio',
estructura: 'hierro'
}
], function(err, result) {
//Resultado de insertMany
});
en
db.collection('personas').find().each(function(err, doc) {
//Itera por todos los resultados
});
4. Buscar documentos.
db.collection('objetos').find({obj: 'Heladera'}).toArray(function(err, docs) {
//docs es un array con todos los documentos cuyo 'obj' es 'Heladera'
});
db.collection('personas').find({"direccion.numero": 742}).each(function(err, doc) {
//Itera por todos los resultados que tengan un 'subdocumento' 'direccion' que tenga
//la propiedad 'numero' = 742
});
en
db.collection('personas').find({"telefono.cod": '07'}).each(function(err, doc) {
//Itera por todos los documentos cuyo array 'telefono' tenga un documento
//con la porpiedad 'cod' = '07'
});
4. Buscar documentos.
db.collection('personas')
.find()
.sort({"direccion.calle": 1, "direccion.numero": -1})
.toArray(function(err, docs) {
//Trae todas las personas ordenado por nombre de calle de forma ascendente
//luego por número de forma descendente
});
en
db.collection('personas')
.updateOne(
{apellido: 'Gorgory'},
{nombre: 'Rafa'},
function(err, result) {
//Modifica el primer 'Gorgory' que
//encuentra asignando el nombre 'Rafa'
});
5. Actualizar documentos.
Métodos:
Todos los métodos llevan los siguientes parámetros:
1. Un filtro para seleccionar elementos.
2. Un documento para especificar las propiedades a actualizar.
3. Parámetros opcionales.
en
db.collection('personas')
.deleteOne(
{apellido: 'Gorgory'},
function(err, result) {
//Elimina el primer 'Gorgory' que
//encuentra
});
6. Eliminar documentos.
Métodos:
Todos los métodos llevan como parámetro un filtro para seleccionar elementos.
db.collection('personas')
.deleteMany(
{},
function(err, result) {
//Elimina todos los
//documentos de la coleccion
});
en
db.collection('personas').drop(function(err, result) {
//Elimina la colección entera.
});
7. Eliminar colecciones.
Crear un script de node que inserte varios documentos en la colección "productos". Como mínimo, cada documento debe tener un nombre, precio y foto (url a la foto), pero deberían incluir otras propiedades.
Se debe imprimir en consola un listado con todos los elementos cuyo nombre empiece con "a".
Luego debe modificar el nombre de los productos cuyo precio es menor a 100, y eliminar los mayores a 1000.
Si el precio del producto es = 55, debe reemplazar el documento entero.
Crear una api REST, utilizando express donde pueda consultar, dar de alta, dar de baja y modificar documentos de la colección "productos".