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

时间:2016-12-10 20:42:40

标签: javascript mongodb meteor

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

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 Collection中,如下所示;

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

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

任何人都可以解释我做错了什么并帮助纠正代码吗?

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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