Consultas de mangosta

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *