Database

db={"collectionA":[{cart:[{product_id:ObjectId("5a934e000102030405000000"),quantity:10}]}],"collectionB":[{_id:ObjectId("5a934e000102030405000000"),name:"",price:1},{_id:ObjectId("5a934e000102030405000001"),name:"",price:1}]}

Query

db.collectionA.aggregate([{"$lookup":{"from":"collectionB","let":{"pid":"$cart.product_id"},"pipeline":[{"$match":{"$expr":{"$in":["$_id","$$pid"]}}}],"as":"product_detail"}}])

Result