我需要一些帮助在mongodb和nodejs中按日期查找记录.
我在抓取脚本中将日期添加到json对象,如下所示:
jsonObj.last_updated = new Date();
Run Code Online (Sandbox Code Playgroud)
该对象插入到mongodb中.我可以看到如下:
"last_updated" : "2014-01-22T14:56:59.301Z"
Run Code Online (Sandbox Code Playgroud)
然后在我的nodejs脚本中我做了一个findOne():
var jObj = JSON.parse(line.toString());
collection.findOne(jObj,function(err, doc) {
if (doc){
console.log(doc._id);
} else {
console.log('not found');
}
});
Run Code Online (Sandbox Code Playgroud)
找不到该对象.如果我从对象中删除了last_updated字段,那么它就是问题所在.
如果我按如下方式隔离该字段:
collection.findOne({last_updated: '2014-01-22T14:56:59.301Z'},function(err, doc) {
if (doc){
console.log(doc._id);
} else {
console.log('not found');
}
});
Run Code Online (Sandbox Code Playgroud)
什么都没有回来.我做错了什么?
各位,在处理 moment.js 文档时遇到了困难。
record.lastModified = moment.utc().format();
Run Code Online (Sandbox Code Playgroud)
返回:
2014-11-11T21:29:05+00:00
Run Code Online (Sandbox Code Playgroud)
太棒了,它采用 UTC 格式...当我将其存储在 Mongo 中时,它被存储为 a String,而不是Date对象类型,这正是我想要的。
我需要它是:
"lastModified" : ISODate("2014-11-11T15:26:42.965-0500")
Run Code Online (Sandbox Code Playgroud)
但我需要它是一个原生的javascript 对象类型,并将其存储在 Mongo 中。现在,如果我存储上述内容,它将作为字符串而不是日期对象类型输入。
我已经用 moment.js 尝试了几乎所有的方法。他们的 toDate() 函数可以工作,但会回退到我当地的时区,并且不给我 utc。
谢谢!