Mongodb时间字段更新$currentDate

来源:互联网 发布:解压软件安装包 编辑:程序博客网 时间:2024/04/29 00:55

一、$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"   }}



原创粉丝点击