Mongoose es un modelado y manejo de objetos MongoDB para el entorno node.js.
Mongoose Queries son diferentes funciones auxiliares estáticas para llevar a cabo operaciones CRUD (Crear, Leer, Actualizar y Eliminar) que son muy importantes para cualquier base de datos. Las funciones auxiliares estáticas devuelven un objeto de consulta mangosta. La consulta de mongoose se lleva a cabo primero de forma asíncrona y luego llama a la función de devolución de llamada que se le pasó. Una forma alternativa es utilizar la función síncrona que se encarga de ejecutar la consulta.
Sintaxis: llame a cualquier función de consulta para obtener el objeto de consulta de la siguiente manera en un modelo:
const Student = mongoose.model('Student', studentSchema); Student.findOneAndUpdate({ name: 'John' }, function (err, student) { if (err) return handleError(err); else{ // Updated successfully } });
Las siguientes son Consultas diferentes:
- Model.deleteMany(): esta consulta toma los parámetros de cualquier campo que coincida y luego elimina todas las entradas en la base de datos que coincidan.
- Model.deleteOne(): esta consulta toma los parámetros de cualquier campo que coincida y luego elimina cualquiera de las entradas en la base de datos que coincida.
- Model.find(): esta consulta toma los parámetros de uno o más campos que coinciden y luego devuelve todas las entradas en la base de datos que coinciden.
- Model.findById() : esta consulta toma la identificación como parámetro y luego devuelve la entrada en la base de datos si existe coincidencia.
- Model.findByIdAndDelete() : esta consulta toma la identificación como parámetro y luego elimina la entrada en la base de datos si existe alguna coincidencia.
- Model.findByIdAndRemove() : esta consulta toma la identificación como parámetro y luego elimina la entrada en la base de datos si existe y luego la devuelve a la función de devolución de llamada.
- Model.findByIdAndUpdate() : esta consulta toma la identificación y los parámetros y valores de actualización como el parámetro y luego actualiza la entrada en la base de datos si existe.
- Model.findOne(): esta consulta toma los parámetros de cualquier campo que coincida y luego devuelve cualquiera de las entradas en la base de datos que coincida.
- Model.findOneAndDelete() : esta consulta toma los parámetros de cualquier campo que coincida y luego devuelve y elimina cualquiera de las entradas en la base de datos que coincida.
- Model.findOneAndRemove() : esta consulta toma los parámetros de cualquier campo que coincida y luego devuelve y elimina cualquiera de las entradas en la base de datos que coincida.
- Model.findOneAndReplace() : esta consulta toma los parámetros de cualquier campo y el documento de reemplazo y luego reemplaza cualquiera de las entradas en la base de datos que coincida.
- Model.findOneAndUpdate() : esta consulta toma los parámetros de uno o más campos y los campos y valores actualizados y luego actualiza cualquiera de las entradas en la base de datos que coincida.
- Model.replaceOne() : esta consulta toma los parámetros como un filtro y el documento de reemplazo y luego reemplaza cualquiera de las entradas en la base de datos que coincida.
- Model.updateMany() : esta consulta toma los parámetros como un filtro y los campos y valores de actualización y luego actualiza todas las entradas en la base de datos que coinciden.
- Model.updateOne() : esta consulta toma los parámetros como un filtro y los campos y valores de actualización y luego actualiza cualquiera de las entradas en la base de datos que coincidan.
Creación de Aplicación e Instalación de Módulo: Crearemos un modelo de Alumno que contendrá los campos nombre, edad y fecha de nacimiento. Luego, guardaremos tres documentos en MongoDB usando mongoose. Finalmente, los actualizaremos si su edad es mayor de 12 años. En este ejemplo se usan Node.js y NPM, por lo que es necesario instalarlos.
Paso 1 : crea una carpeta e inicialízala:
npm init
Paso 2 : Instale mongoose en el proyecto.
npm i mongoose
Estructura del proyecto: La estructura del proyecto es la siguiente:
Ejemplo: Cree un tipo de esquema, luego un modelo y cree tres documentos diferentes con algunos valores. Luego llame a la función de guardar para guardar el documento. Podemos crear una función de guardado para guardar los documentos de los estudiantes en lugar de crear documentos individuales. Luego llamaremos a una función que consultará los documentos que tengan una antigüedad mayor o igual a 12 años. Los haremos estudiar en la escuela secundaria como un campo highschool=true.
index.js
const mongoose = require("mongoose"); // Database connection mongoose.connect("mongodb://localhost:27017/geeksforgeeks",); // Creating Schema const studentSchema = new mongoose.Schema({ name: { type: String, required: true }, age: { type: Number, default: 8 }, highschool: { type: Boolean, default: false }, }); // Student model const Student = mongoose.model("Student", studentSchema); // Creating Student document from Model // function to save in database const saveStudent = async (name, age) => { let s = new Student({ name: name, age: age, }); await s.save(); console.log("student document saved in database\n Student name:", s.name); }; const updateHighSchool = async () => { await Student.updateMany( { age: { $gt: 12 } }, { highschool: true }); console.log("Updated student fields"); }; const start = async () => { await saveStudent("Ajay", 5); await saveStudent("Rajesh", 13); await saveStudent("Manav", 15); updateHighSchool(); }; start();
Paso 4: Ahora ejecute el código usando el siguiente comando en la Terminal/Símbolo del sistema para ejecutar el archivo.
node index.js
Producción:
Los documentos en MongoDB son los siguientes: Dos estudiantes están en la escuela secundaria pero no Ajay. Anteriormente, todos estaban configurados como falsos, pero dos de ellos se actualizaron.
Referencia: https://mongoosejs.com/docs/queries.html
Publicación traducida automáticamente
Artículo escrito por manavsarkar07 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA