您的位置:首页 > 数据库 > Mongodb

Mongodb时间字段更新$currentDate

2017-12-06 10:51 281 查看
一、$currentDate设置字段的值为当前时间,值为Date类型或者Timestamp时间戳类型,默认是Date类型

$currentDate操作符的使用格式是:

{ $currentDate: { <field1>: <typeSpecification1>, ... } }

<typeSpecification>字段可以是一个boolean true类型设置当前字段是日期Date类型,或者一个文档{ $type: "timestamp" }或者{ $type: "date" }根据指定的类型设置日期,该操作是只支持小写的timestamp和小写的date。

二、$currentDate操作符是只用在更新操作上,不可以用在insert操作,更新日期类型的字段时建议使用$currentDate操作符,因为它是直接取的数据库服务端的时间,而使用new Date()设置日期取的是当前服务器上的时间,容易造成误差。

三、考虑如下users集合文档

{ _id: 1, status: "a", lastModified: ISODate("2013-10-02T01:11:18.965Z") }

如下操作更新lastModified字段为当前时间,cancellation.date字段设置为当前时间戳,并且更新status字段和cancellation.reason字段。
db.users.update(
{ _id: 1 },
{
$currentDate: {
lastModified: true,
"cancellation.date": { $type: "timestamp" }
},
$set: {
status: "D",
"cancellation.reason": "user request"
}
}
)

更新的结果是:
{
"_id" : 1,
"status" : "D",
"lastModified" : ISODate("2014-09-17T23:25:56.314Z"),
"cancellation" : {
"date" : Timestamp(1410996356, 1),
"reason" : "user request"
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: