我正尝试通过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”
当回调的函数签名不是函数(错误,文档)时会发生这种情况{...
如果我使用Aggregators的回调,它可以工作,但我不想链接回调/查询,并认为这样会更有效。
我发现了Mongoose aggregate cursor promise
但是想知道这是否可以通过本地承诺以更简单的方式实现。 我也不想迭代光标,如上面的答案所述。
答案 0 :(得分:5)
var allDone = Promise.all(result1,result2)
应该是
var allDone = Promise.all([result1,result2])