Aqui está uma consulta muito mais simples; db.shapes.find({'shape.id':{$all:[1,2]},shape:{$size:2}});