Categories
General

Cómo acceder, almacenar, leer, actualizar y borrar en MongoDB.

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ón
  • localhost hace referencia al servidor donde está alojada la base de datos
  • playground 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

Your email address will not be published. Required fields are marked *