skip to Main Content

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?

2

Answers


  1. 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}});
    
    Login or Signup to reply.
  2. const data = await cR.aggregagte([
      {
        '$match': {
           myid: "xxxxxx" 
        }
      },
      {
        '$lookup': {
          'from': 'rE', 
          'localField': 'authorId', 
          'foreignField': '_id', 
          'as': 'cla'
        }
      }
    ]);
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search