javascript - 如何在 Express 中为 Express.js 中的 Mongo 查询创建 UTC 时间

标签 javascript express mongoose

这个问题可能已经被问过一百次了,但我敢问:在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/

相关文章:

javascript - javascript/node.js 中的 seek() 等价物?

javascript - 我正在应用什么技术来减少代码?

node.js - Mongoose 架构必填字段不适用于多个值

javascript - 为什么在 DOM 中插入中间非标准元素会破坏弹性框?

javascript - 没有反射(reflect)我在 angularjs 中 `$rootScope` 的更改

javascript - Node.js Express 没有响应

node.js - 用于目录多语言应用程序的 Angular SEO

javascript - 使用 Nodejs Express 渲染带有数据的 html

node.js - Mongoose 查询需要填充的数据

mongodb - 使用带有 id 内部聚合 mongodb 的数组上的 where