MongoDB按日期范围查找文档 - JavaScript

时间:2014-11-04 17:19:17

标签: javascript mongodb date

我希望通过日期范围找到特定文档(beginDate应该更大或等于 - 并且closeDate应该更小或等于当前日期)。 该文件如下:

{ "beginDate" : ISODate("2014-11-03T23:00:00Z"), 
  "closeDate" : ISODate("2014-11-10T23:00:00Z"), 
  "desc" : "Test", 
  "status" : "ok", 
  "playerId" : "ZLkQzaY7DDvwL8sRj",
  "_id" : "kozi9eHcLYa2LbWDG" }

我的查询如下:

var doc = TestData.findOne({
    playerId: player._id, 
    beginDate: { $gte: new Date(new Date().toISOString()) }, 
    closeDate: { $lte: new Date(new Date().toISOString()) }
});

不幸的是,这不起作用。我该如何解决? 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您在比较中得到了倒退的逻辑,因此您需要交换$lte$gte用法。您希望找到beginDate的值小于或等于当前时间的文档,而closeDate的值大于或等于< / em>当前时间。您也可以使用new Date()来获取当前时间。

var doc = TestData.findOne({
    playerId: player._id, 
    beginDate: { $lte: new Date() }, 
    closeDate: { $gte: new Date() }
});