Database
[{"propertyA":[{"name":"jim","group":"a"},{"name":"bob","group":"a"},{"name":"alice","group":"b"}],"propertyB":[{"group":"a","numberOfTimes":2},{"group":"b","numberOfTimes":6}]}]
Query
db.collection.aggregate([{"$project":{"result":{"$map":{"input":"$propertyA","in":{"$let":{"vars":{"nt":{"$filter":{"input":"$propertyB","cond":{"$eq":["$$pb.group","$$pa.group"]},"as":"pb"}}},"in":{"$mergeObjects":["$$pa",{"$arrayElemAt":["$$nt",0]}]}}},"as":"pa"}},"_id":0}}])