I have this mongoose query:
let rE = await cR.find({myid: "xxxxxx"});
now this query will return multiple results, in which I then need to query another model based off of the rE.class_id
, which is returned through rE
, the query above. So I do this:
let cla = await Cl.find({_id: rE.class_id});
however, that obviously doesn't work because rE.class_id
gets returned as multiple objects, so placing rE.class_id
just wont work. How can I get this to work?
CodePudding user response:
If you are trying to get all Cl models where _id = (classIds of models rE) Then you can try this one:
let rE = await cR.find({myid: "xxxxxx"});
const classIds = rE.map(r => r.classId);
let cla = await Cl.find({_id: {$in: classIds}});
CodePudding user response:
const data = await cR.aggregagte([
{
'$match': {
myid: "xxxxxx"
}
},
{
'$lookup': {
'from': 'rE',
'localField': 'authorId',
'foreignField': '_id',
'as': 'cla'
}
}
]);