简体   繁体   中英

How to update date field by removing time in mongoDB?

I have a collection of 100 records.Each record have date field like below

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

I want to update each record by removing the time like below

 "created_date" : "2018-11-20"

How to write a query for this kind of update

You can remove the timestamp from the date using Aggregate Query and update collection using forEach function. It may take time but it will update the collection data as per your requirement. Here is Mongo aggregation query:

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
    }
  })
})

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM