我试图通过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‘
当回调的函数签名不是function(err,docs){...
如果我对聚合器使用回调,它可以工作,但我不想链接回调/查询,并认为这种方式会更有效。
我找到了这个Mongoose aggregate cursor promise
但想知道用原生承诺以更简单的方式实现这一点是否可行。我不想像上面的SO答案中解释的那样遍历游标。
发布于 2017-05-19 21:36:32
var allDone = Promise.all(result1,result2)
应该是
var allDone = Promise.all([result1,result2])
https://stackoverflow.com/questions/44064211
复制相似问题