我有以下代码用于从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个在外面。
任何人都可以解释我做错了什么并帮助纠正代码吗?
答案 0 :(得分:0)
您需要将日期与实际日期对象进行比较,而不是代表它们的字符串。
也就是说,您需要使用toDate()
方法从moment
个对象中获取日期。
var futureDate = moment().add(10, "days").toDate();
答案 1 :(得分:0)
实际上,moment.toISOString()返回一个字符串,因此您不能使用它来与mongodb查询中的日期对象进行比较。 您应该考虑为此创建日期对象。 个REG, 晏