For a query like, { 'a.b':{ $all:[ { $elemMatch:
{ c:1 }} ] } }, a field named 'a.b' will not be identified if 'a' is an array containing an object with field 'b':
c = db.c; c.drop(); c.save( { a:{ b:[ { c:1 } ] } } ); printjson( c.find( { 'a.b':{ $all:[ { $elemMatch:{ c:1 } } ] } } ).toArray() ); c.remove(); c.save( { a:[ { b:[ { c:1 } ] } ] } ); // Does not match because the implementation does not handle the case where 'a' is an array. printjson( c.find( { 'a.b':{ $all:[ { $elemMatch:{ c:1 } } ] } } ).toArray() );
- is related to
-
SERVER-7385 Write named field extraction iterators for new Matcher
- Closed