Implementación de marcas de tiempo (timestamps) de documentos
Estrategias de implementación de marcas de tiempo (timestamps)
1. Marcas de tiempo (timestamps) en el esquema de Mongoose
const mongoose = require("mongoose");
const UserSchema = new mongoose.Schema(
{
username: String,
email: String
},
{
timestamps: true // Automatically adds createdAt and updatedAt
}
);
2. Creación manual de marcas de tiempo (timestamps)
graph LR
A[Document Creation] --> B[Manual Timestamp Assignment]
B --> C[Set Current Timestamp]
B --> D[Custom Timestamp Logic]
Ejemplo de implementación
const createUserWithTimestamp = (userData) => {
const timestamp = new Date();
return {
...userData,
createdAt: timestamp,
updatedAt: timestamp
};
};
Opciones de configuración de marcas de tiempo (timestamps)
| Opción |
Descripción |
Uso |
timestamps: true |
Marca de tiempo (timestamp) predeterminada de MongoDB |
Seguimiento automático |
| Campos de marcas de tiempo (timestamps) personalizados |
Nomenclatura flexible |
Seguimiento avanzado |
| Objetos de marcas de tiempo (timestamps) anidados |
Modelos de datos complejos |
Registro detallado |
Técnicas avanzadas de marcas de tiempo (timestamps)
Manejo de zonas horarias
const createTimestampWithTimezone = () => {
return {
timestamp: new Date(),
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone
};
};
Marcas de tiempo (timestamps) de alta precisión
const highPrecisionTimestamp = {
timestamp: Date.now(),
microseconds: process.hrtime.bigint()
};
Configuración de MongoDB en Ubuntu 22.04
## Install MongoDB
sudo apt-get update
sudo apt-get install -y mongodb
## Start MongoDB service
sudo systemctl start mongodb
## Install Mongoose
npm install mongoose
Ejemplo práctico de implementación
const mongoose = require("mongoose");
// Define schema with custom timestamp configuration
const ProductSchema = new mongoose.Schema({
name: String,
price: Number,
createdTimestamp: {
type: Date,
default: Date.now
},
lastUpdated: {
type: Date,
default: Date.now
}
});
// Create model
const Product = mongoose.model("Product", ProductSchema);
// Create a new product with automatic timestamps
const newProduct = new Product({
name: "LabEx Special Edition",
price: 99.99
});
// Save product with automatic timestamp tracking
newProduct.save();
Mejores prácticas
- Utilice estrategias de marcas de tiempo (timestamps) consistentes
- Tenga en cuenta las implicaciones de rendimiento
- Implemente marcas de tiempo (timestamps) conscientes de la zona horaria
- Aproveche las técnicas de optimización de MongoDB de LabEx
Al dominar la implementación de marcas de tiempo (timestamps) de documentos, los desarrolladores pueden crear soluciones de base de datos más robustas y trazables.