MongoDBでは、$currentDate
演算子は、フィールドの値を現在の日付に設定します。
日付として設定できます またはタイムスタンプ タイプ。デフォルトは日付です 。
$currentDate
更新です 演算子であり、ドキュメントを更新する場合にのみ使用でき、挿入する場合には使用できません(ただし、アップサート操作では使用できます)。
例
dogs
というコレクションがあるとします。 次のドキュメントで:
{
"_id" : 1,
"name" : "Wag",
"goodDog" : true,
"dateModified" : ISODate("2020-01-01T00:00:00Z")
}
そして、ドキュメントに変更を加えたいと思います。変更を加えるときは、dateModified
を更新する必要があります 変更日までのフィールド。
したがって、$currentDate
を使用できます 日付を現在の日付に設定する演算子。次のようなことができます:
db.dogs.update(
{ _id: 1 },
{
$currentDate: {
dateModified: true
},
$set: {
goodDog: false
}
}
)
ここでは、dateModified: true
を使用します 日付を使用して日付を設定するには タイプ(これは、日付として設定する簡単な方法です。 タイプ)。
コレクション/ドキュメントをもう一度確認することで、結果を確認できます:
db.dogs.findOne()
結果:
{ "_id" : 1, "name" : "Wag", "goodDog" : false, "dateModified" : ISODate("2021-01-16T04:17:41.206Z") }
dateModified
フィールドが現在の日付(つまり、更新を実行した日時)に更新されました。 goodDog
フィールドも指定どおりに更新されました。
タイムスタンプ
デフォルトでは、$currentDate
日付を使用します タイプ。または、ドキュメントでタイプを指定することもできます。したがって、{$type: timestamp}
を使用できます 日付がタイムスタンプに更新されるようにします BSONタイプ。
例:
db.dogs.update(
{ _id: 1 },
{
$currentDate: {
dateModified: { $type: "timestamp" }
},
$set: {
goodDog: true
}
}
)
この場合、タイムスタンプを指定したドキュメントを提供しました タイプ。
この方法は、日付にも使用できます。 タイプします(または前の例で見たように省略形の方法を使用します)。
コレクションを確認してください:
db.dogs.findOne()
結果:
{ "_id" : 1, "name" : "Wag", "goodDog" : true, "dateModified" : Timestamp(1610771023, 1) }