PetTable { _id: ObjectId, bdTable: string, status: ObjectId(ref=Status) } Status { _id : ObjectId, statusCode : number, --> exple: (1, 2, ...7) petId : ObjectId(ref=PetTable), }quiero encontrar todos los objetos de PetTable con bdTable = "zzzz" y estado =5;
No tengo idea de cómo hacerlo?
Ejecute una operación agregada con la etapa de canalización $lookup de la siguiente manera:
db.PetTable.aggregate([ { $match: { bdTable: 'zzzz' } }, { $lookup: { from: 'Status', let: { status_id: '$status' }, pipeline: [ { $match: { $expr: { $and: [ { $eq: [ 5, '$statusCode' ] }, { $eq: [ '$_id', '$$status_id' ] } ] } } } ], as: 'status' } }, { $match: { $expr: { $gt: [ { $size: '$status' }, 0] } } }, ]);