我有一个模式用户,该用户具有类型为mongoose.Schema.Types.ObjectId
的字段管理器,该字段管理器从另一个具有有关该管理器其他信息的模式中放置一个管理器的ID。
当我想在调用用户模式的结果中放入经理姓名时,我使用如下所示的for循环:
const res = await axios.get('/api/users/all');
const config = {
headers: {
'Content-Type': 'application/json',
},
};
//adding planner name to the data
for (let element of res.data) {
element.plannerName = await axios.post(
'/api/planners/plannerName',
{ id: element.planner },
config
);
}
这有效,但是我觉得这是一个缓慢的解决方案。我是该领域的新手,我想知道这是否是执行此类任务的最佳实践。 谢谢!
答案 0 :(得分:1)
您要查找的内容在数据库语言中称为join
。
您必须将用户集合与经理集合一起加入。为此,您可以在查找后使用populate()
函数。
代码如下:
let users = await User.find({}).populate('manager');