2015-11-07 49 views
2

在node.js.中执行聚合时出现以下错误。TypeError:无法在node.js中调用方法'toArray'undefined while aggregatein mongo

错误:类型错误:无法调用“指定者”未定义

doctorsCollection.aggregate([ 
    {$project:{"treatments._id":1, "treatments.price":1}}, 
    {$unwind:"$treatments"}, 
    {$match:{"treatments._id": parseInt(treatments[i])}}, 
    {$sort:{"treatments.price":-1}}, 
    {$limit:1} 
]).toArray(function(err, result) { 
    console.log(err); 
}); 

我不知道发生了什么事情。任何帮助,将不胜感激。谢谢!

+1

'.aggregate'方法在特定版本的驱动程序之前不会返回游标,或者您未指定将游标作为选项指定。直接传递回调以获得结果。 –

回答

2

对于node.js MongoDB驱动程序,.aggregate documentation不会返回游标,除非您指定它作为选项返回游标。默认情况下,它将返回null,所以.toArray方法不起作用/有意义。

有几种方法来处理它,文档提供了大量的例子。在你的情况下,你可以添加{cursor: {batchSize: 1}}作为.aggregate的第二个参数,它会起作用。

相关问题