Mongoose es una biblioteca de modelado de datos de objetos (ODM) para MongoDB. Define un esquema fuertemente tipado, con valores predeterminados y validaciones de esquema que luego se asignan a un documento MongoDB.
Para obtener datos de una colección con Mongoose en NodeJS, debe tener dos cosas necesarias:
- Esquema: Es una estructura de documento que contiene la propiedad con sus tipos (valor por defecto, validaciones, etc. cuando se requiera) como un par clave-valor.
- Modelo : es una clase creada con la ayuda de un esquema definido y un documento MongoDB es una instancia del modelo. Por lo tanto, actúa como una interfaz para la base de datos MongoDB para crear, leer, actualizar y eliminar un documento.
Después de tener un modelo, podemos usar el método find() en el modelo de una colección en particular para obtener documentos de la colección.
Sintaxis:
<Model_Name>.find(<query>,<projection>)
- <consulta> : Es opcional. Especifica un filtro de selección que se usa para filtrar documentos usando varios operadores de consulta de MongoDB. Si no se aprueba, se devuelven todos los documentos.
- <proyección> : Es opcional. Contiene campos que queremos que se devuelvan a los documentos que coinciden con el filtro de consulta. Si no se pasa, se devuelven todos los campos.
Instalar mangosta:
Paso 1: puede visitar el enlace Instalar mongoose para instalar el módulo mongoose. Puede instalar este paquete usando este comando.
npm install mongoose
Paso 2: ahora puede importar el módulo mongoose en su archivo usando:
const mongoose = require('mongoose');
Implementación:
Paso 1: cree una carpeta y agregue los archivos model.js y main.js en ella.
- model.js: contiene esquemas y modelos para todas las colecciones que desea usar, y luego estamos exportando todos los modelos creados para que puedan importarse al archivo en el que obtendremos datos de diferentes colecciones.
- main.js: Es el archivo del servidor principal aquí obtendremos datos de dos colecciones diferentes.
Paso 2: escriba el siguiente código en el archivo model.js .
model.js
// Requiring module const mongoose = require('mongoose'); // Course Modal Schema const courseSchema = new mongoose.Schema({ _id: Number, name: String, category: String }); // Student Modal Schema const studentSchema = new mongoose.Schema({ name: String, enroll: Number, courseId: Number }); // Creating model objects const Course = mongoose.model('course', courseSchema); const Student = mongoose.model('student', studentSchema); // Exporting our model objects module.exports = { Student, Course }
Base de datos: Ya tenemos documentos en nuestras colecciones de Cursos y Estudiantes de los cuales vamos a obtener datos como se muestra a continuación:
Paso 3: La conexión a la base de datos se puede establecer fácilmente usando mongoose como:
mongoose.connect('mongodb://localhost:27017/GFG', { useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: false });
Paso 4: Escriba el siguiente código en el archivo main.js.
main.js
// Requiring mongoose module const mongoose = require('mongoose'); // Importing Models Student and Course from model.js const { Student, Course } = require('./model'); // Connecting to database mongoose.connect('mongodb://localhost:27017/GFG', { useNewUrlParser: true, useUnifiedTopology: true, useFindAndModify: false }); var dbcourse = []; // Finding courses of category Database Course.find({ category: "Database" }) .then(data => { console.log("Database Courses:") console.log(data); // Putting all course id's in dbcourse arrray data.map((d, k) => { dbcourse.push(d._id); }) // Getting students who are enrolled in any // database course by filtering students // whose courseId matches with any id in // dbcourse array Student.find({ courseId: { $in: dbcourse } }) .then(data => { console.log("Students in Database Courses:") console.log(data); }) .catch(error => { console.log(error); }) }) .catch(error => { console.log(error); })
Paso 5: Ejecute el archivo main.js usando el siguiente comando:
node main.js
Explicación: en el código anterior, en el archivo main.js , obtenemos todos los documentos de la colección del curso cuya categoría es Base de datos, luego almacenamos _id de cada curso en la array dbcourse y luego obtenemos todos los documentos de la colección del estudiante que está inscrito en cualquier curso . de la categoría Base de datos.
Salida: Estamos obteniendo datos de dos colecciones diferentes, Cursos y Estudiantes en la consola que se muestra a continuación:
Publicación traducida automáticamente
Artículo escrito por localhost3000 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA