MongoDB $currentDate 运算符介绍
Mongodb 是一种面向文档的数据库,它支持许多不同的操作符来进行查询和更新操作。其中之一是 $currentDate
运算符,它可以在文档中设置一个日期字段为当前日期或时间。
语法
$currentDate
运算符的语法如下:
{ $currentDate: { <field>: <typeSpecification>, ... } }
其中, <field>
指定要更新的字段名称, <typeSpecification>
指定要设置的日期类型。 <typeSpecification>
可以是一个布尔值或一个日期类型字符串,如:
true
表示设置日期为当前时间戳。{ $type: "date" }
表示设置日期为当前日期。
使用场景
$currentDate
运算符可用于任何更新操作中,例如 updateOne
、 updateMany
和 replaceOne
等。
当您想要在更新操作中自动设置一个日期字段为当前日期或时间时,可以使用 $currentDate
运算符。例如,您可以在用户文档中添加一个 lastLogin
字段,并在用户登录时使用 $currentDate
将其设置为当前日期。
示例
假设我们有以下名为 users
的集合:
{
"_id": ObjectId("602f5a00b5ff5e89d728c166"),
"username": "alice",
"email": "[email protected]",
"lastLogin": ISODate("2022-02-23T10:23:51.000Z")
},
{
"_id": ObjectId("602f5a11b5ff5e89d728c167"),
"username": "bob",
"email": "[email protected]",
"lastLogin": ISODate("2022-02-22T08:15:33.000Z")
}
现在,我们想要更新 alice
的 lastLogin
字段为当前日期。我们可以使用以下代码:
db.users.updateOne({ username: "alice" }, { $currentDate: { lastLogin: true } })
运行上述代码后, users
集合将变为:
{
"_id": ObjectId("602f5a00b5ff5e89d728c166"),
"username": "alice",
"email": "[email protected]",
"lastLogin": ISODate("2023-03-09T05:42:58.000Z")
},
{
"_id": ObjectId("602f5a11b5ff5e89d728c167"),
"username": "bob",
"email": "[email protected]",
"lastLogin": ISODate("2022-02-22T08:15:33.000Z")
}
可以看到, alice
的 lastLogin
字段已更新为当前时间戳。
结论
$currentDate
运算符是一个非常有用的工具,可以使您在更新操作中自动设置一个日期字段为当前日期或时间。