Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MongoDB按日期范围查找文档-JavaScript_Javascript_Mongodb_Date - Fatal编程技术网

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

MongoDB按日期范围查找文档-JavaScript,javascript,mongodb,date,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" : "koz

我想通过日期范围查找特定文档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()) }
});
我的查询如下所示:

{ "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()) }
});
不幸的是,这不起作用。我怎样才能解决它?
如果有任何帮助,我们将不胜感激。

您在比较中的逻辑是颠倒的,因此您需要交换$lte和$gte的使用。您希望查找beginDate的值小于或等于当前时间,closeDate的值大于或等于当前时间的文档。您也可以使用新日期获取当前时间

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

您尝试筛选的日期对象必须是ISODate实例吗?是的,它作为ISODate实例存储在数据库中,我只想获取今天的文档,这在范围内。我真的不明白为什么这不起作用。如果提供给筛选的值是ISODate对象而不是日期对象,会发生什么情况?您的查询使用的日期间隔几乎是相同的微秒?