Database
db={"events":[{"event":"buy","userId":"u1","itemId":"iPhone 12"},{"event":"buy","userId":"u1","itemId":"iPhone 12"},{"event":"buy","userId":"u2","itemId":"iPhone 12"},{"event":"buy","userId":"u1","itemId":"iPhone 11"},{"event":"buy","userId":"u1","itemId":"iPhone 11"},{"event":"buy","userId":"u2","itemId":"iPhone 11"},{"event":"sell","userId":"u1","itemId":"iPhone 11"}]}
Query
db.events.aggregate([{$match:{event:"buy"}},{$group:{_id:"$userId",set:{$addToSet:"$itemId"}}},{$group:{_id:null,unique:{$sum:{$size:"$set"}},n:{$sum:1}}},{$project:{_id:0,avg:{$divide:["$unique","$n"]}}}])