Database

[{"collection":"productos","count":2,"content":{"_id":{"type":"ref","id":1,"refContent":{"type":"string","unique":true,"minLength":6,"maxLength":8}},"nombre":{"type":"faker","method":"BeerName"}}},{"collection":"ingresos","count":5,"content":{"proveedor":{"type":"objectId"},"detalles":{"type":"array","size":2,"arrayContent":{"type":"object","objectContent":{"producto_id":{"type":"ref","id":1},"cantidad":{"type":"int","minInt":5,"maxInt":50}}}}}}]

Query

db.productos.aggregate([{"$lookup":{"from":"ingresos","localField":"_id","foreignField":"detalles.producto_id","as":"ingresos"}},{"$unwind":"$ingresos"},{"$project":{"_id":1,"nombre":1,"ingresos":{"$filter":{"input":"$ingresos.detalles","as":"ingreso","cond":{"$eq":["$_id","$$ingreso.producto_id"]}}}}}])

Result