$subtract - Amazon DocumentDB

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.

$subtract

El $subtract operador de Amazon DocumentDB se utiliza para restar valores. Se puede usar para restar fechas, números o una combinación de ambos. Este operador es útil para calcular la diferencia entre dos fechas o restar un valor de un número.

Parámetros

  • expression1: El primer valor que se va a restar.

  • expression2: El segundo valor del que se va a restar. <expression1>

Ejemplo (MongoDB Shell)

El siguiente ejemplo muestra cómo utilizar el $subtract operador para calcular la diferencia entre dos fechas.

Cree un documento de muestra

db.dates.insert([ { "_id": 1, "startDate": ISODate("2023-01-01T00:00:00Z"), "endDate": ISODate("2023-01-05T12:00:00Z") } ]);

Ejemplo de consulta

db.dates.aggregate([ { $project: { _id: 1, durationDays: { $divide: [ { $subtract: ["$endDate", "$startDate"] }, 1000 * 60 * 60 * 24 // milliseconds in a day ] } } } ]);

Salida

[ { _id: 1, durationDays: 4.5 } ]

En este ejemplo, el $subtract operador se utiliza para calcular la diferencia entre $endDate y $startDate en días.

Ejemplos de código

Para ver un ejemplo de código para usar el $subtract comando, elija la pestaña correspondiente al 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'); try { await client.connect(); const db = client.db('test'); const collection = db.collection('dates'); const pipeline = [ { $project: { _id: 1, durationDays: { $divide: [ { $subtract: ["$endDate", "$startDate"] }, 1000 * 60 * 60 * 24 // Convert milliseconds to days ] } } } ]; const results = await collection.aggregate(pipeline).toArray(); console.dir(results, { depth: null }); } finally { await client.close(); } } example().catch(console.error);
Python
from datetime import datetime, timedelta from pymongo import MongoClient def example(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') try: db = client.test collection = db.dates pipeline = [ { "$project": { "_id": 1, "durationDays": { "$divide": [ { "$subtract": ["$endDate", "$startDate"] }, 1000 * 60 * 60 * 24 # Convert milliseconds to days ] } } } ] results = collection.aggregate(pipeline) for doc in results: print(doc) except Exception as e: print(f"An error occurred: {e}") finally: client.close() example()