Marcas de tiempo de mangosta

Mongoose es un modelado y manejo de objetos MongoDB para el entorno node.js.

Las marcas de tiempo de Mongoose son compatibles con el esquema. Las marcas de tiempo guardan la hora actual del documento creado y también cuándo se actualizó en forma de fecha al convertirlo en verdadero. Cuando se establece en verdadero, la mangosta crea dos campos de la siguiente manera:

  • createdAt : Fecha que representa cuando se creó el documento
  • updatedAt : fecha que representa la última actualización de este documento

Los dos campos se crean cuando la base de datos se creó por primera vez y luego se actualizó mediante las consultas save(), updateOne(), updateMany(), findOneAndUpdate(), update(), replaceOne() o bulkWrite().

Sintaxis : cree un esquema con una marca de tiempo de la siguiente manera:

const studentSchema = new Schema({ nombre: String }, { timestamps: true });

const Estudiante = mongoose.model(‘Estudiante’, StudentSchema);

Creación de aplicaciones e instalación de módulos: crearemos un esquema con las marcas de tiempo y luego imprimiremos las diferentes marcas de tiempo que se crean y actualizan al actualizar los detalles de un estudiante.

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 archivo llamado index.js. Dentro de index.js, conéctese a MongoDB. Aquí se utiliza MongoDB Compass. Ahora primero cree el esquema de Estudiante y luego su modelo. Ahora crea un nuevo documento y guárdalo. Imprima las marcas de tiempo del documento y luego actualice el documento después de un retraso de tiempo y luego vuelva a imprimir los detalles de la marca de tiempo.

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 },
    },
    { timestamps: true }
);
  
// 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,
    });
    s.save().then((doc) => {
        console.log("Name:", doc.name, ", Age:", doc.age);
        console.log("Created At:", doc.createdAt);
        console.log("Updated At:", doc.updatedAt);
    });
};
  
const updateStudent = async () => {
    let doc = await Student.findOneAndUpdate(
        { name: "Rahul" },
        { age: 25 },
        { new: true }
    );
    console.log("Name:", doc.name, ", Age:", doc.age);
    console.log("Created At:", doc.createdAt);
    console.log("Updated At:", doc.updatedAt);
};
  
const start = async () => {
    await saveStudent("Rahul", 15);
    setTimeout(function () {
        updateStudent();
    }, 3000);
};
  
start();

Paso 4: Ejecute el código usando el siguiente comando:

node index.js

Salida: La salida en la línea de comando es la siguiente. El resultado muestra que el documento se actualiza después de 3 segundos.

 

Salida de MongoDB: el siguiente campo ahora también se reflejará en la base de datos, como se muestra en la imagen a continuación:

 

Referencia: https://mongoosejs.com/docs/timestamps.html

Publicación traducida automáticamente

Artículo escrito por RajeevSarkar 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 *