Database

db={"users":[{_id:ObjectId("5c8fd0f88abbcb0fd58503df")},{_id:ObjectId("5c93aed7fc7776b48f790364")}],"Toto":[{_id:ObjectId("5c93aee7fc7776b48f7904a1"),fieldA:{_id:ObjectId("5c8fd0f88abbcb0fd58503df")},fieldB:[{_id:ObjectId("5c8fd0f88abbcb0fd5851111")},{_id:ObjectId("5c8fd0f88abbcb0fd5852222")}]},{_id:ObjectId("5c93af02fc7776b48f79068c"),fieldA:{_id:ObjectId("5c93af02fc7776b48f799999")},fieldB:[{_id:ObjectId("5c8fd0f88abbcb0fd58503df")},{_id:ObjectId("5c93aed7fc7776b48f790000")}]}]}

Query

db.users.aggregate([{$lookup:{from:"Toto",let:{"user_id":"$_id"},as:"fcollection",pipeline:[{$match:{$or:[{$expr:{$in:["$$user_id","$fieldB._id"]}},{$expr:{$eq:["$fieldA._id","$$user_id"]}}]}}]}}])

Result