Database

db={"post":[{"title":"what 1","description":"what 1","categoryId":[ObjectId("5e8bc7182b4d38000808c2c2"),ObjectId("5e8bc7182b4d38000808c2c1")]},{"title":"who","description":"who whom","categoryId":[ObjectId("5e8bc7182b4d38000808c2b0"),ObjectId("5e8bc7182b4d38000808c2b9")]},{"title":"what 2","description":"what 2","categoryId":[ObjectId("5e8bc7182b4d38000808c2c2"),ObjectId("5e8bc7182b4d38000808c2b9")]},{"title":"what 3","description":"what 3","categoryId":[ObjectId("5e8bc7182b4d38000808c2c2"),ObjectId("5e8bc7182b4d38000808c2c5")]},{"title":"what 4","description":"what 4","categoryId":[ObjectId("5e8bc7182b4d38000808c2c2"),ObjectId("5e8bc7182b4d38000808c210")]}],"categories":[{"_id":ObjectId("5e8bc7182b4d38000808c2c1"),relation:1},{"_id":ObjectId("5e8bc7182b4d38000808c2c2"),relation:2},{"_id":ObjectId("5e8bc7182b4d38000808c2c3"),relation:3}]}

Query

db.post.aggregate([{$match:{categoryId:ObjectId("5e8bc7182b4d38000808c2c2")}},{$sample:{size:3}},{$lookup:{from:"categories",localField:"categoryId",foreignField:"_id",as:"categoryId"}}])

Result