Vamos a ver las operaciones básicas que podemos hacer en MongoDB, es decir, cómo acceder, almacenar, leer, actualizar y borrar en una base de datos como MongoDB usando el módulo Mongoose.
Para seguir este tutorial, debemos tener instalado un servidor de MongoDB en nuestra máquina y al menos un cliente como MongoDB Compass para corroborar las operaciones realizadas en nuestra base de datos.
Cómo conectar con MongoDB
En primer lugar, invocaremos al módulo mongoose
para disponer de sus métodos. Después, llamaremos al método connect()
pasándole como parámetro un String que será la conexión a la base de datos deseada.
const mongoose = require(‘mongoose’);
mongoose.connect(‘mongodb://localhost/playground')
.then(() => console.log(‘Connected...’))
.catch(err => console.error(‘Connection failed...’));
Aquí podemos explicar el parámetro pasado al método connect()
:
mongodb://
hace referencia al protocolo de conexiónlocalhost
hace referencia al servidor donde está alojada la base de datosplayground
hace referencia al nombre de la base de datos a la que nos queremos conectar (si no existe la primera vez, la crea automáticamente)
Operaciones previas
Antes de almacenar documentos en MongoDB, primero debemos definir un esquema, en el cual indicaremos los diferentes tipos de datos. Lo que en bases de datos relacionales conocemos como la estructura.
Definiendo el esquema
const courseSchema = new mongoose.Schema({
name: String,
author: String,
price: Number,
});
Usando un SchemaType object
Podemos usar un “SchemaType object” para proporcionar información adicional, como por ejemplo, un valor por defecto:
const courseSchema = new mongoose.Schema({
isPublished: { type: Boolean, default: false }
});
Tipos de datos soportados: String, Number, Boolean, Buffer (para almacenar datos binarios), Date y ObjectID
Una vez tenemos definido el esquema, debemos compilarlo en un Modelo. El Modelo es como una clase, el borrador del cual sacaremos los objetos.
Creando el Modelo
Usaremos el método model()
de Mongoose. Necesita dos parámetros: el nombre del Modelo y el esquema definido.
const Course = mongoose.model('Course', courseSchema);
Cómo almacenar documentos en MongoDB (Create)
async function createCourse() {
const course = new Course({
name: 'Curso de WordPress',
author: 'Jorge',
price: 10
isPublished: false,
});
course = await course.save();
}
Cómo leer o recuperar documentos en MongoDB (Read)
const course = Course
.find()
.or()
.skip()
.limit()
.sort()
.select();
Cómo actualizar documentos en MongoDB (Update)
Para actualizar documentos en MongoDB se conocen dos vías: query first o bien update first.
La vía query first localiza primero el documento por su ID. Después, se hacen las operaciones correspondientes a la actualización de datos
La segunda vía, actualiza directamente el documento, pasando el ID o la condición que queramos, y como segundo parámetro, los datos a actualizar
// Updating a document (query first)
const course = await Course.findById(id);
if ( ! course ) return;
course.set({ name: ‘...’ });
course.save();
// Updating a document (update first)
const result = await Course.update({ _id: id }, {
$set: { name: ‘...’ }
});
// Updating a document (update first) and return it
const result = await Course.findByIdAndUpdate(
{ _id: id },
{ $set: { name: ‘...’ } },
{ new: true }
);
Operadores para actualizar datos:
https://docs.mongodb.com/manual/reference/operator/update/
Cómo borrar documentos en MongoDB (Delete)
// Removing a document
const result = await Course.deleteOne({ _id: id });
const result = await Course.deleteMany(
{ isPublished: true }
);
const course = await Course.findByIdAndRemove(id);
Leave a Reply