结合mongo $ push和$ currentDate将时间包含在新的数组元素中

时间:2016-09-12 05:49:53

标签: mongodb mongodb-query

我正在尝试将新文档添加到mongo数组中,并且我需要其中一个字段作为当前时间戳。这是用于字段级版本控制,但我无法弄清楚如何组合$ push和$ currentDate来获得我想要的结果。

有人能指出我正确的方向吗?

db.tmp.adviceReportingJourney.update(
    { _id : "5525f99be4b041151d51386e5525f99be4b041151d513870" },
    {
        $push: {
            "$currentDate": {
                "Conversation1MeetingCreated" :  {
                    "vid" : 4,
                    "ts" : {"$type": "timestamp"},
                    "data" : 1428552213559
                }
            }
        }
    }
)

1 个答案:

答案 0 :(得分:1)

您可以使用您的编码语言date.Now添加当前时间;-) 喜欢(我认为是java; - )):

db.tmp.adviceReportingJourney.update(
    { _id : "5525f99be4b041151d51386e5525f99be4b041151d513870" },
    {
        $push: {
            "$currentDate": {
                "Conversation1MeetingCreated" :  {
                    "vid" : 4,
                    "ts" : {"$type": "timestamp"},
                    "data" : Date.now()
                }
            }
        }
    }
)

更新:运行mongo时> 3.0你可以使用$ currentDate。从文档$currentDate可以看出$ currentDate仅适用于db.collection.update(),db.collection.findAndModify()。

请参阅下面的示例更新嵌入文档“Conversation1MeetingCreated”(您更新时间戳的地方)使用:

{
  $currentDate: {
        "Conversation1MeetingCreated.ts": { $type: "timestamp" }
     }, 
  $set: {
        "Conversation1MeetingCreated.vid" : 4,
        "Conversation1MeetingCreated.data": 1428552213559
     }  
}

希望它有所帮助。