$dateDiff - Amazon DocumentDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

$dateDiff

バージョン 5.0 の新機能

Elastic クラスターではサポートされていません。

$dateDiff 集計演算子は、指定された単位で 2 つの日付の差を計算します。開始日と終了日の間の単位境界の数を返します。

パラメータ

  • startDate: 開始日の式。

  • endDate: 終了日式。

  • unit: 差の時間単位。サポートされている単位は、year、、quartermonthweekdayhourminutesecond、、および ですmillisecond

例 (MongoDB シェル)

次の例は、 $dateDiff演算子を使用して、注文から配送までの日数を計算する方法を示しています。

サンプルドキュメントを作成する

db.shipments.insertMany([ { orderId: 1001, orderDate: ISODate("2025-01-10T08:00:00Z"), deliveryDate: ISODate("2025-01-15T14:30:00Z") }, { orderId: 1002, orderDate: ISODate("2025-02-05T10:00:00Z"), deliveryDate: ISODate("2025-02-12T16:45:00Z") } ]);

クエリの例

db.shipments.aggregate([ { $project: { orderId: 1, orderDate: 1, deliveryDate: 1, daysToDeliver: { $dateDiff: { startDate: "$orderDate", endDate: "$deliveryDate", unit: "day" } } } } ]);

出力

[ { _id: ObjectId('6924a5f2d66dcae121d29517'), orderId: 1001, orderDate: ISODate('2025-01-10T08:00:00.000Z'), deliveryDate: ISODate('2025-01-15T14:30:00.000Z'), daysToDeliver: 5 }, { _id: ObjectId('6924a5f2d66dcae121d29518'), orderId: 1002, orderDate: ISODate('2025-02-05T10:00:00.000Z'), deliveryDate: ISODate('2025-02-12T16:45:00.000Z'), daysToDeliver: 7 } ]

コードの例

$dateDiff コマンドを使用するコード例を表示するには、使用する言語のタブを選択します。

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 shipments = db.collection('shipments'); const result = await shipments.aggregate([ { $project: { orderId: 1, orderDate: 1, deliveryDate: 1, daysToDeliver: { $dateDiff: { startDate: "$orderDate", endDate: "$deliveryDate", unit: "day" } } } } ]).toArray(); console.log(result); client.close(); } example();
Python
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') db = client['test'] shipments = db['shipments'] result = list(shipments.aggregate([ { "$project": { "orderId": 1, "orderDate": 1, "deliveryDate": 1, "daysToDeliver": { "$dateDiff": { "startDate": "$orderDate", "endDate": "$deliveryDate", "unit": "day" } } } } ])) print(result) client.close() example()