这个问题可能已经被问过一百次了,但我敢问:在express/mongoose中,我需要创建一个UTC ISO日期才能查询MongoDB。这就是我正在做的事情:
var date = new Date(req.params.date + " 00:00:00 UTC").toUTCString();
而 req.params.date 等于此字符串:2015-01-01
。
以上行创建:Mon, 12 Jan 2015 00:00:00 GMT
,在 MongoDB 中我有:
"date" : ISODate("2014-12-08T00:00:00.000Z")
如何让它发挥作用?
最佳答案
您需要将查询中的日期表示为标准 JavaScript Date
对象。
因此,请省略 toUTCString()
部分,这样的内容就可以工作:
var date = new Date(req.params.date);
collection.findOne({date: date}, callback);
ISODate
的东西让很多人感到困惑(包括我自己)。 ISODate
只是一个 MongoDB shell 构造,日期对象存储为 64 位整数 BSON Date MongoDB 中的对象。
关于javascript - 如何在 Express 中为 Express.js 中的 Mongo 查询创建 UTC 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28199421/