日期查询之间的 Meteor.js / MongoDB 不返回数据

Posted

技术标签:

【中文标题】日期查询之间的 Meteor.js / MongoDB 不返回数据【英文标题】:Meteor.js / MongoDB between dates query not returning data 【发布时间】:2016-12-10 20:42:39 【问题描述】:

我有以下代码用于从 Mongo 集合中获取结果。

var currentDate = moment().toISOString();
// RETURNING: 2016-12-10T20:36:04.494Z

var futureDate = moment().add(10, "days").toISOString();
// RETURNING: 2016-12-20T20:36:04.495Z

return agenda = Agendas.find(
  "agendaDate":  '$gte': currentDate, '$lte': futureDate 
);

日期存储在 MongoDB 集合中,如下所示;

 
"_id" : ObjectId("584877e56466dd236cd95f15"), 
"agendaDate" : ISODate("2016-12-12T17:28:25.000+0000"), 
"agendaTime" : "20:59", 
"agendaEvent" : "Test event" 

但是,我没有得到任何返回的结果。我设置了 3 个测试文档,2 个在范围内,1 个在范围外。

谁能解释我做错了什么并帮助纠正代码?

【问题讨论】:

【参考方案1】:

您需要将日期与实际日期对象进行比较,而不是表示它们的字符串。

也就是说,您需要使用toDate() 方法从您的moment 对象中获取日期。

var futureDate = moment().add(10, "days").toDate();

【讨论】:

有效。谢谢大师。被选为答案。【参考方案2】:

实际上 moment.toISOString() 返回一个字符串,因此您不能使用它与 mongodb 查询中的日期对象进行比较。 您应该考虑为此创建一个日期对象。 注册, 亚恩

【讨论】:

以上是关于日期查询之间的 Meteor.js / MongoDB 不返回数据的主要内容,如果未能解决你的问题,请参考以下文章

如何将meteor.js db 导入远程mongo

MongoDB / Meteor / 将 MONGO_URL 导出到已部署的应用程序

MongoDB / Meteor / 将 MONGO_URL 导出到已部署的应用程序

Mongodb:从 mongo shell 中的 ObjectId 执行日期范围查询

如何使用 Mongo 存储库两次查询同一字段?

Meteor js 和 fullcalendar