Database

[{"client_interactions":[{"productType":"A","productId":"1"},{"productType":"A","productId":"2"},{"productType":"B","productId":"9"}]},{"client_interactions":[{"productType":"A","productId":"1"},{"productType":"A","productId":"2"}]},{"client_interactions":[{"productType":"A","productId":"1"},{"productType":"A","productId":"3"},{"productType":"C","productId":"10"}]}]

Query

db.collection.aggregate([{$addFields:{"client_interactions":{$filter:{input:"$client_interactions",cond:{$eq:["$$this.productType","A"]}}}}},{$project:{a:{$reduce:{input:"$client_interactions",initialValue:[],in:{$concatArrays:["$$value",{$map:{input:"$client_interactions",as:"c",in:{x:"$$this.productId",y:"$$c.productId"}}}]}}}}},{$unwind:"$a"},{$match:{$expr:{$ne:["$a.x","$a.y"]}}},{$sort:{"a.x":1,"a.y":1}},{$group:{_id:"$a",count:{$sum:1}}},{$group:{_id:"$_id.x",arr:{$push:{k:"$_id.y",v:"$count"}}}},{$group:{_id:null,"co-ocurrences-count":{$push:{k:"$_id",v:{$arrayToObject:"$arr"}}}}},{$project:{_id:null,"co-ocurrences-count":{$arrayToObject:"$co-ocurrences-count"}}}])

Result