Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
$minute
La etapa de canalización de $minute agregación de Amazon DocumentDB extrae el valor de los minutos de un campo de fecha o marca horaria.
Este operador resulta útil cuando necesita realizar cálculos o agrupaciones basados en fecha y hora dentro de su canalización de agregación.
Parámetros
Ejemplo (MongoDB Shell)
El siguiente ejemplo muestra cómo utilizar el $minute operador para agrupar los documentos por el valor de minutos extraído del campo de marca de tiempo y contar el número de documentos de cada grupo.
Cree documentos de muestra
db.events.insertMany([
{ timestamp: new Date("2023-04-15T10:30:25.000Z") },
{ timestamp: new Date("2023-04-15T10:30:35.000Z") },
{ timestamp: new Date("2023-04-15T10:31:05.000Z") },
{ timestamp: new Date("2023-04-15T10:31:45.000Z") },
{ timestamp: new Date("2023-04-15T10:32:15.000Z") }
]);
Ejemplo de consulta
db.events.aggregate([
{
$group: {
_id: {
minute: { $minute: "$timestamp" }
},
count: { $count: {} }
}
},
{ $sort: { "_id.minute": 1 } }
]);
Salida
[
{ "_id": { "minute": 30 }, "count": 2 },
{ "_id": { "minute": 31 }, "count": 2 },
{ "_id": { "minute": 32 }, "count": 1 }
]
Ejemplos de código
Para ver un ejemplo de código para usar el $minute comando, elija la pestaña del idioma que desee usar:
- Node.js
-
const { MongoClient } = require('mongodb');
async function example() {
const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false');
const db = client.db('test');
const collection = db.collection('events');
await collection.insertMany([
{ timestamp: new Date("2023-04-15T10:30:25.000Z") },
{ timestamp: new Date("2023-04-15T10:30:35.000Z") },
{ timestamp: new Date("2023-04-15T10:31:05.000Z") },
{ timestamp: new Date("2023-04-15T10:31:45.000Z") },
{ timestamp: new Date("2023-04-15T10:32:15.000Z") }
]);
const result = await collection.aggregate([
{
$group: {
_id: {
minute: { $minute: "$timestamp" }
},
count: { $count: {} }
}
},
{ $sort: { "_id.minute": 1 } }
]).toArray();
console.log(result);
await client.close();
}
example();
- Python
-
from pymongo import MongoClient
from datetime import datetime
def example():
client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
db = client['test']
collection = db['events']
collection.insert_many([
{'timestamp': datetime(2023, 4, 15, 10, 30, 25)},
{'timestamp': datetime(2023, 4, 15, 10, 30, 35)},
{'timestamp': datetime(2023, 4, 15, 10, 31, 5)},
{'timestamp': datetime(2023, 4, 15, 10, 31, 45)},
{'timestamp': datetime(2023, 4, 15, 10, 32, 15)}
])
result = list(collection.aggregate([
{
'$group': {
'_id': {
'minute': {'$minute': '$timestamp'}
},
'count': {'$count': {}}
}
},
{'$sort': {'_id.minute': 1}}
]))
print(result)
client.close()
example()