【问题标题】:Meteor.js / MongoDB between dates query not returning data日期查询之间的 Meteor.js / MongoDB 不返回数据
【发布时间】: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 个在范围外。

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

【问题讨论】:

    标签: javascript mongodb meteor


    【解决方案1】:

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

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

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

    【讨论】:

    • 有效。谢谢大师。被选为答案。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-11
      • 2018-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多