MongoDB:如何对集合中的所有值运行特定字段的函数?

MongoDB:如何对集合中的所有值运行特定字段的函数?,mongodb,Mongodb,我想在mongo shell上做这个。基本上,我想改变时间存储在当前数据库中的方式 现在,我的“时间”字段存储的字符串类似于“Thu Oct 11 2012 15:27:58 GMT-0500(CDT)”,但我想运行Date.parse(“Thu Oct 11 2012 15:27:58 GMT-0500(CDT)”,以便存储unix时间戳 我希望对所有当前条目都这样做,因为我将来只会使用unix时间戳 谢谢那么: var c = db.collection.find(); while (c.h

我想在mongo shell上做这个。基本上,我想改变时间存储在当前数据库中的方式

现在,我的“时间”字段存储的字符串类似于“Thu Oct 11 2012 15:27:58 GMT-0500(CDT)”,但我想运行Date.parse(“Thu Oct 11 2012 15:27:58 GMT-0500(CDT)”,以便存储unix时间戳

我希望对所有当前条目都这样做,因为我将来只会使用unix时间戳

谢谢

那么:

var c = db.collection.find();
while (c.hasNext()) {
  object = c.next(); 
  time = Date.parse(object.time);
  db.collection.update({_id: object._id}, {$set: {'time': time}});
}
在执行之前,我有以下几点:

执行后,它看起来如下所示:


希望这有帮助

老兄,你真棒!我不知道hasNext()/next()函数,因为我通常使用mongoose/nodejs与mongo进行交互。谢谢很高兴它解决了。如果您不想每次都键入它,或者如果您有更长的函数,您可以创建一个.js脚本,并将其作为参数传递给
mongo
工具。另请参见
db.times.find()
{ "_id" : ObjectId("50773daa77f428a7e4cd226b"), "time" : "Thu Oct 11 2012 15:27:58 GMT-0500 (CDT)" }
db.times.find()
{ "_id" : ObjectId("50773daa77f428a7e4cd226b"), "time" : 1349987278000 }