-
Type: Bug
-
Resolution: Done
-
Priority: Minor - P4
-
None
-
Affects Version/s: 2.4.12
-
Component/s: Querying
-
None
-
ALL
-
The old 2.4.X query by _id hack code path doesn't pass a MatchDetails object to fillQueryResultFromObj, so the positional array projection feature (SERVER-828) doesn't do the right thing. See:
curop.debug().idhack = true; if ( found ) { n = 1; fillQueryResultFromObj( bb, pq.getFields() , resObject ); // details stays the default NULL param value }
The easiest thing to do would be to avoid the query by _id hack altogether for queries with a positional array projection.
Note: I do not think this bug exists in 2.6.X or 2.8.X but I haven't tried it.