我试图以相同的方法从一个集合中查询id
,并从另一个集合中查询该ID的值。我尝试了一种老式的方法,该方法花费大量时间来循环,检查条件并发送回响应。有什么有效的方法可以做到这一点。
我的收藏集
a.model.ts
[{
"_id": "5e0987d7f9b2473264f64565",
"empId": "5de60be5707fba2750c0770c",
"role": :emp,
"createdAt": "2019-12-30T05:15:03.595Z",
"updatedAt": "2019-12-30T05:15:03.595Z",
"__v": 0
},
{
"_id": "5e0987d7f9b2473264f64565",
"role": :emp,
"empId": "5de60be5707fba2750c2384c",
"createdAt": "2019-12-30T05:15:03.595Z",
"updatedAt": "2019-12-30T05:15:03.595Z",
"__v": 0
}]
b.model.ts
[{
"_id": "5de60be5707fba2750c0770c",
"name": "abc",
"age": "25",
"updatedAt": "2019-12-30T05:15:03.595Z",
"__v": 0
},
{
"_id": "5de60be5707fba2750c0770c",
"name": "xyz",
"age": "29",
"updatedAt": "2019-12-30T05:15:03.595Z",
"__v": 0
}]
get.ts
a.find({
role: "emp"
}, (err, data) => {
if (err) {
res.send(err)
} else {
data.forEach(element => {
b.find({
_id: new mongoose.Types.ObjectId(element.empId)
}, (err, result) => {
if (err) {
console.log(err)
} else {
res.send(result);
}
})
});
}
})
我从role:emp
获得了与a
匹配的所有数据,并循环获取empId,以便我可以循环b
并发送详细信息作为响应。有什么有效的方法可以做到这一点?