Mongoose / MongoDB – 如何使用承诺与聚合查询

我试图通过mongoose对MongoDB中的2个不同的集合执行2个查询,然后将它们的结果合并为一个REST API响应。

例:

var result1 = Model1.aggregate([<operations here>]).exec() var result2 = Model2.aggregate([<operations here>]).exec() var allDone = Promise.all(result1,result2) allDone.then(function(data1,data2){ //Do something with both data }) 

我得到这个错误TypeError:无法读取未定义的属性'readPreference'

当callback的函数签名不是函数时发生的(err,docs){…

如果我使用callback的聚合器,它的工作原理,但我不想连锁callback/查询,并认为这样会更有效率。

我发现这个Mongoose聚合游标的承诺

但是想知道这是否可以用一个简单的方式与本地的承诺。 我不想像上面的答案中所解释的那样遍历游标。

 var allDone = Promise.all(result1,result2) 

本来应该

 var allDone = Promise.all([result1,result2])