Database

db={"Collection_A":[{"ref_id":ObjectId("5e9561edf8beb57100dded8f"),"features":[{"_id":ObjectId("5e9561edf8beb57100dded91"),"k":"foo","v":"bar"},{"_id":ObjectId("5e9561edf8beb57100dded92"),"k":"foo2","v":"bar2"}]},{"ref_id":ObjectId("5e9561edf8beb57100dded8f"),"features":[{"_id":ObjectId("5e9561edf8beb57100dded91"),"k":"foo22","v":"bar33"},{"_id":ObjectId("5e9561edf8beb57100dded92"),"k":"foo212","v":"bar211"}]},{"ref_id":ObjectId("5e9561edf8beb57100dded8f"),"features":[{"_id":ObjectId("5e9561edf8beb57100dded91"),"k":"foo","v":"bar33"},{"_id":ObjectId("5e9561edf8beb57100dded92"),"k":"foo212","v":"bar211"}]}],"Collection_B":[{"ref_id":ObjectId("5e9561edf8beb57100dded8f")}]}

Query

db.Collection_B.aggregate([{$lookup:{from:"Collection_A",let:{refId:"$ref_id"},pipeline:[{$match:{$expr:{$eq:["$ref_id","$$refId"]}}},{"$match":{"features":{"$elemMatch":{"k":"foo","v":"bar"}}}}],as:"Collection_A"}}])

Result