Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
Node.js MongoDB/Mongoose:find(查询)和aggregate([$match:query])结果在使用日期和$gte/$lte时会有所不同_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js MongoDB/Mongoose:find(查询)和aggregate([$match:query])结果在使用日期和$gte/$lte时会有所不同

Node.js MongoDB/Mongoose:find(查询)和aggregate([$match:query])结果在使用日期和$gte/$lte时会有所不同,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我使用Mongoose构建聚合管道,匹配工作正常,直到我想使用$gte和$lte运营商匹配日期。奇怪的是,如果我在常规的find()中使用匹配查询,它会按预期工作: var query = { dueDate: { $gte: moment().toISOString() // I've also tried using $date { ... } } }; // finds entries matching the query [..., ...] Model.find(qu

我使用Mongoose构建聚合管道,匹配工作正常,直到我想使用
$gte
$lte
运营商匹配日期。奇怪的是,如果我在常规的
find()
中使用匹配查询,它会按预期工作:

var query = {
  dueDate: {
    $gte: moment().toISOString() // I've also tried using $date { ... }
  }
};

// finds entries matching the query [..., ...]
Model.find(query, callback);
但是,使用
$match
和同一查询进行聚合不会:

var aggregation = [{
  $match: query
}];

// finds no entries (using the same query) []
Model.aggregate(aggregation, callback);
你知道为什么会这样吗


非常感谢

使用聚合时,remove toISOString()聚合不适用于此

这项工作:

var query = {
  dueDate: {
    $gte: moment()
  }
};

write:var query={dueDate:{$lte:new Date()}};然后与toISOString()相同,您将看到差异var query={dueDate:{$lte:new Date().toISOString()};啊,你说得对!但是,矩()不起作用,因为聚合显然需要一个本机日期对象,所以矩().toDate()在我的例子中起作用。不管怎么说,这有点奇怪,不过在查找和聚合方面有所不同。