db.l.find()
{ "_id" : 1, "a" : { "no_x" : 1 } }
{ "_id" : 2, "a" : [ { "no_x" : 1 }, { "no_x" : 2 } ] }
{ "_id" : 3, "a" : [ { "x" : 1 }, { "no_x" : 2 } ] }
{ "_id" : 4, "a" : [ { "x" : 1 }, { "x" : null } ] }
db.r.find()
{ "_id" : 0, "b" : null }
db.l.find({"a.x":null})
{ "_id" : 1, "a" : { "no_x" : 1 } }
{ "_id" : 2, "a" : [ { "no_x" : 1 }, { "no_x" : 2 } ] }
{ "_id" : 3, "a" : [ { "x" : 1 }, { "no_x" : 2 } ] }
{ "_id" : 4, "a" : [ { "x" : 1 }, { "x" : null } ] }
db.l.aggregate({$lookup: {from:"r", localField:"a.x", foreignField:"b", as:"matched"}})
{ "_id" : 1, "a" : { "no_x" : 1 }, "matched" : [ { "_id" : 0, "b" : null } ] }
{ "_id" : 2, "a" : [ { "no_x" : 1 }, { "no_x" : 2 } ], "matched" : [ { "_id" : 0, "b" : null } ] }
{ "_id" : 3, "a" : [ { "x" : 1 }, { "no_x" : 2 } ], "matched" : [ ] } { "_id" : 4, "a" : [ { "x" : 1 }, { "x" : null } ], "matched" : [ { "_id" : 0, "b" : null } ] }