首页 > 解决方案 > 如何通过删除 mongoDB 中的时间来更新日期字段?

问题描述

我收集了 100 条记录。每条记录都有如下日期字段

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

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

 "created_date" : "2018-11-20"

如何为这种更新编写查询

标签: mongodb

解决方案


您可以使用聚合查询从日期中删除时间戳,并使用 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
    }
  })
})

推荐阅读