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 値はパイプライン全体で同じままです。