Database
db={"Sharing":[{to_id:1,material_id:"material1"}],"Material":[{_id:"material1",organization_id:2},{_id:"material2",organization_id:1},{_id:"material3",organization_id:1}]}
Query
db.Sharing.aggregate([{"$match":{to_id:1}},{"$lookup":{"from":"Material","let":{to_id:"$to_id",material_id:"$material_id"},"pipeline":[{"$match":{$expr:{$or:[{$eq:["$$to_id","$organization_id"]},{$eq:["$$material_id","$_id"]}]}}},{"$addFields":{"organization_id":1}}],"as":"materialLookup"}},{"$addFields":{"materialCount":{$size:"$materialLookup"}}}])