-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Minor Change
-
ALL
-
Query 2019-11-04, Query 2019-11-18, Query 2019-12-02, Query 2019-12-16, Query 2019-12-30
If a document has a compound sort key (e.g.:
{"": 1, "": 2}) and an expression tries to manipulate it, the result may only take one of the fields into account. For example, if the user tries to use {$objectToArray: {$meta: "sortKey"}}, the resulting array only has the first element (
{k: "", v: 1}).
I haven't encountered any cases yet, but it's possible that as we use Document/Value more we'll run into internal cases where we are manipulating Documents with duplicate fields.
In general, there is no invariant that all field names in a BSONObj are unique, but the only safe way to have a Document with duplicate field names is when you create it from a BSONObj and convert back to a BSONObj with no transformations (so that the lazy conversion behavior just returns the original BSONObj).
- is depended on by
-
DRIVERS-806 $meta:"sortKey" expressions can generate BSON with duplicate field names which are not correctly handled by Document/Value class
- Closed
- is related to
-
SERVER-43361 Remove compatibility for 4.2 $sortKey format
- Closed