如何将多个mongoose查询合并为一个

User.find().then(function (user) { console.log(user) }) Category.find().then(function (category) { console.log(err); }) Content.find().then(function (content) { console.log(content); }) 

如何将查询语句组合成一个并获得所有结果? ps:我用mongoose来操作mongoDb。

你可以在Promise.all()中包装所有的查询来获得想要的结果。 传递给Promise.all()的查询将同时执行。 看看下面的代码。

 Promise.all([ User.find(), Category.find(), Content.find() ]) .then(results=>{ //results return an array const [users,categories,content] = results; console.log("users",users); console.log("categories",categories); console.log("contents",content); }) .catch(err=>{ console.error("Something went wrong",err); }) 

如果你使用蓝鸟库,那么你可以使用Promise.props(),它基本上允许你传递一个对象而不是一个数组。

  Promise.props({ users:User.find(), categories : Category.find(), content : Content.find() }).then(result=>{ console.log("users",result.users); console.log("categories",result.categories); console.log("contents",result.content); }).catch(err=>{ console.error("Something went wrong",err); })