gpt4 book ai didi

node.js - 如何将多个 Mongoose 查询合并为一个

转载 作者:搜寻专家 更新时间:2023-11-01 00:28:39 24 4
gpt4 key购买 nike

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);
})

如果您使用的是 bluebird 库,那么您可以使用 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);
})

关于node.js - 如何将多个 Mongoose 查询合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47426597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com