MongoDB におけるタイムスタンプの比較と計算の手順
MongoDBでは、$matchパイプライン演算子を使用して、集約パイプラインフレームワークで時間の比較と計算を行うことができます。
よく使われる時間の比較や計算方法をいくつか紹介します。
- ネイティブの日本語で文章を言い換えてください。一つのオプションのみが必要です:$cmp
- date1
- 日付2
db.collection.aggregate([
{
$project: {
dateComparison: { $cmp: ["$date1", "$date2"] }
}
}
])
この操作ではdateComparison フィールドが返されます。これは、date1 と date2 の比較結果を表す数値です。date1 が date2 より大きい場合は正数が返り、date1 が date2 と等しい場合は 0 が返り、date1 が date2 より小さい場合は負数が返ります。
- ネイティブで日本語に言い換えてください。1つのオプションのみ必要です:$cmp
- いつか
- デート
db.collection.aggregate([
{
$project: {
dateComparison: { $cmp: ["$date", "$$NOW"] }
}
}
])
この操作は、date と現在の日付の比較結果を表す数値である dateComparison フィールドを返します。date が現在の日付より大きい場合は正の数、date が現在の日付と同じ場合は 0、date が現在の日付より小さい場合は負数が返ります。
- 差し引く
- この日は2023年4月1日です
db.collection.aggregate([
{
$project: {
daysDifference: {
$divide: [
{ $subtract: ["$$NOW", "$date"] },
1000 * 60 * 60 * 24
]
}
}
}
])
この操作は、日付と現在の日付との間の隔たりの日数を表す数値である daysDifference フィールドを返します。
これらは一般的な方法です。必要に応じて適切に変更・組み合わせて使用できます。また、他の集約演算子と演算子を使用して、さらに複雑な時間の比較・計算ロジックを実装できます。