MongoDBはNOW
を提供します 集計パイプラインを使用するときに現在の日時値を取得できるようにするシステム変数。
これは、ドキュメントを現在の日時で更新する場合に役立ちます。
MongoDB 4.2以降、更新メソッドは集約パイプラインを受け入れることができます。したがって、NOW
$currentDate
の代わりに使用できます いずれかの更新方法を使用するときに現在の日時を設定するためのフィールド更新演算子。
NOW
にアクセスするには システム変数。接頭辞として2つのドル記号を付け、引用符で囲みます("$$NOW"
。
例
dogs
というコレクションがあるとします。 次のドキュメントが含まれています:
{ "_id" : 1, "name" : "Fetch", "weight" : 25 }
NOW
の使用例を次に示します。 そのドキュメントを更新するときのシステム変数:
db.dogs.updateOne(
{ _id : 1 },
[
{ $set : { weight : 30, lastModified : "$$NOW" } }
]
)
それでは、ドキュメントをもう一度見てみましょう:
db.dogs.find( { _id: 1 } ).pretty()
結果:
{ "_id" : 1, "name" : "Fetch", "weight" : 30, "lastModified" : ISODate("2021-01-27T01:29:32.833Z") }
lastModified
フィールドに、現在の日付と時刻を含むDateオブジェクトが追加されました。
CLUSTER_TIME
もあります 現在のタイムスタンプを返すシステム変数。ただし、これはレプリカセットとシャードクラスターでのみ使用できます。
NOW
にも注意してください およびCLUSTER_TIME
値はパイプライン全体で同じままです。