是否可以在不重新计算整个日期的情况下更新mongo文档上日期条目的小时数?
这是我的架构:
book = {
name: String,
release: Date
}
以下是一些文件:
{name:"book1", release: ISODate("2016-05-18T16:00:00Z")}
{name:"book1", release: ISODate("2016-05-17T17:00:00Z")}
{name:"book1", release: ISODate("2016-03-12T01:00:00Z")}
等等。
如您所见,图书的营业时间为16:00,17:00和01:00。
我想将所有时间设置为00:00,同时保持实际的日,月和年不变
这可能吗?
答案 0 :(得分:1)
这是一个mongo shell脚本,它将小时设置为00本地时间,请记住它将以UTC时间存储它,这可能与当地时间不同。
var collection = db.YOUR_COLLECTION;
var allBooks = collection.find().toArray();
allBooks.forEach(function(book){
var updatedDate = new Date(book.release.setHours(0))
collection.update({_id: book._id}, {release: updatedDate})
});
n.b。我在Studio 3T(以前的Mongo Chef)中运行了这个
进一步阅读: