如何通过删除mongoDB中的时间来更新日期字段?

时间:2018-12-26 04:00:31

标签: mongodb

我有100条记录的集合。每个记录的日期字段如下所示

 "created_date" : ISODate("2018-11-20T00:00:00.000Z")

我想通过删除以下时间来更新每条记录

 "created_date" : "2018-11-20"

如何为这种更新编写查询

1 个答案:

答案 0 :(得分:1)

您可以使用“聚合查询”从日期中删除时间戳记,并使用forEach函数更新集合。这可能需要一些时间,但是会根据您的要求更新收集数据。这是Mongo聚合查询:

db.getCollection('demo').aggregate([
  {
    $addFields: {
      DateinString: {
        $dateToString: {
          format: "%Y-%m-%d",
          date: "$created_date"
        }
      }
    }
  }
]).forEach(function(myDoc){
  db.getCollection("demo").update({
    _id: myDoc._id
  }, {
    $set: {
      "created_date": myDoc.DateinString
    }
  })
})