日期查询之间的 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 不返回数据的主要内容,如果未能解决你的问题,请参考以下文章
MongoDB / Meteor / 将 MONGO_URL 导出到已部署的应用程序
MongoDB / Meteor / 将 MONGO_URL 导出到已部署的应用程序