不是一个特别强大的 Javascript 人,我在尝试更新Date
Mongo 中的很多对象时遇到了一些麻烦。
似乎$inc
还没有为Date
objects实现。因此,为了尝试每天增加一堆日期,我通过以下方式从 bash 调用(类似于)这个脚本mongo myScript.js
:
conn = new Mongo();
db = conn.getDB('myDatabase');
var incrementDates = function() {
db.blah.find(myQuery).forEach(function(doc) {
db.blah.update(
{ _id : doc._id
, my_date : { $exists : true }
}
, { $set : { my_date : new Date(doc.my_date.getTime() + 86400000) }}
);
});
}
incrementDates();
基本思想似乎在 mongoDB shell 中运行良好:
> var doc = db.blah.findOne(myQuery)
> doc.my_date
ISODate("1962-11-02T23:00:00Z")
> new Date(doc.my_date.getTime() + 86400000);
ISODate("1962-11-03T23:00:00Z")
但在脚本中不是很好:
TypeError: doc.my_date has no properties
所以我认为我正在尝试调用getTime
某个null
地方,即使我的更新中的查询应该只返回my_date
存在的文档。
关于这里发生了什么的任何想法?更重要的是:有没有更好的方法来做到这一点?