$subtract - Amazon DocumentDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

$subtract

$subtractOperator di Amazon DocumentDB digunakan untuk mengurangi nilai. Ini dapat digunakan untuk mengurangi tanggal, angka, atau kombinasi keduanya. Operator ini berguna untuk menghitung selisih antara dua tanggal atau mengurangi nilai dari angka.

Parameter

  • expression1: Nilai pertama yang akan dikurangi.

  • expression2: Nilai kedua yang akan dikurangi dari. <expression1>

Contoh (MongoDB Shell)

Contoh berikut menunjukkan bagaimana menggunakan $subtract operator untuk menghitung perbedaan antara dua tanggal.

Buat dokumen sampel

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

Contoh kueri

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

Keluaran

[ { _id: 1, durationDays: 4.5 } ]

Dalam contoh ini, $subtract operator digunakan untuk menghitung perbedaan antara $endDate dan $startDate dalam hari.

Contoh kode

Untuk melihat contoh kode untuk menggunakan $subtract perintah, pilih tab untuk bahasa yang ingin Anda gunakan:

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()