Database
db={"users":[{"_id":ObjectId("65c35a039773c8593fc45ddb"),"email":"email","name":"name","groups":[{"_id":ObjectId("65c1b7716f130b7c4190104a"),"name":"testgroup"}]},{"_id":ObjectId("65c35a039773c8593fc45ddf"),"email":"email","name":"name","groups":[{"_id":ObjectId("65c1b7716f130b7c4190104b"),"name":"testgroup1"}]},{"_id":ObjectId("65c35a039773c8593fc45dff"),"email":"email","name":"name","groups":[]}],"groups":[{"_id":ObjectId("65c1b7716f130b7c4190104a"),"name":"testgroup"},{"_id":ObjectId("65c1b7716f130b7c4190104f"),"name":"testgroup2"}]}
Query
db.users.aggregate([{$match:{$expr:{$ne:[0,{$size:"$groups"}]}}},{$lookup:{from:"groups",localField:"groups._id",foreignField:"_id",as:"matchingDocuments"}},{$set:{invalidGroups:{$filter:{input:"$groups",cond:{$not:{$in:["$$this._id","$matchingDocuments._id"]}}}}}},{$match:{$expr:{$ne:[0,{$size:"$invalidGroups"}]}}},{$unset:["matchingDocuments"]}])