diff options
author | Neil Shweky <neilshweky@gmail.com> | 2021-12-04 20:49:16 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-12-04 21:28:39 +0000 |
commit | c76f0aecc5adfff499941a60764a89f8bc2f84e1 (patch) | |
tree | 56eab7767378097bdab52c7e4a513dccc2feb3c4 /jstests/aggregation | |
parent | fbe42b59f77c645413ebb60f6d11df7acf9612ee (diff) | |
download | mongo-c76f0aecc5adfff499941a60764a89f8bc2f84e1.tar.gz |
SERVER-60967 Implement $sortArray in SBE
Co-authored-by: Andrii Dobroshynski <andrii.dobroshynski@mongodb.com>
Diffstat (limited to 'jstests/aggregation')
-rw-r--r-- | jstests/aggregation/expressions/sortArray.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/jstests/aggregation/expressions/sortArray.js b/jstests/aggregation/expressions/sortArray.js index 6f1db4449dd..b63b94c6d5a 100644 --- a/jstests/aggregation/expressions/sortArray.js +++ b/jstests/aggregation/expressions/sortArray.js @@ -26,6 +26,8 @@ assert.commandWorked(coll.insert({ mismatchedTypes: [1, [1], {a: 1}, "1"], moreMismatchedTypes: [2, 1, "hello", {a: 6}, {a: "hello"}, {a: -1}, null], mismatchedNumberTypes: [[NumberDecimal(4)], [1, 9, 8]], + collatorTestField: ["2", "10"], + collatorObjectTestField: [{a: "2"}, {a: "10"}], })); @@ -190,4 +192,35 @@ assertDBOutputEquals([null, 1, 2, "hello", {a: -1}, {a: 6}, {a: "hello"}], coll. assertDBOutputEquals([[1, 9, 8], [NumberDecimal(4)]], coll.aggregate([ {$project: {sorted: {$sortArray: {input: "$mismatchedNumberTypes", sortBy: 1}}}} ])); + +/* ------------------------ Collator Tests ------------------------ */ + +assertDBOutputEquals( + ["10", "2"], + coll.aggregate([{$project: {sorted: {$sortArray: {input: "$collatorTestField", sortBy: 1}}}}])); + +assertDBOutputEquals( + ["2", "10"], + coll.aggregate([{$project: {sorted: {$sortArray: {input: "$collatorTestField", sortBy: 1}}}}], + {collation: {locale: "en", numericOrdering: true}})); + +assertDBOutputEquals([{a: "10"}, {a: "2"}], coll.aggregate([ + {$project: {sorted: {$sortArray: {input: "$collatorObjectTestField", sortBy: 1}}}} +])); + +assertDBOutputEquals( + [{a: "2"}, {a: "10"}], + coll.aggregate( + [{$project: {sorted: {$sortArray: {input: "$collatorObjectTestField", sortBy: 1}}}}], + {collation: {locale: "en", numericOrdering: true}})); + +assertDBOutputEquals([{a: "10"}, {a: "2"}], coll.aggregate([ + {$project: {sorted: {$sortArray: {input: "$collatorObjectTestField", sortBy: {a: 1}}}}} +])); + +assertDBOutputEquals( + [{a: "2"}, {a: "10"}], + coll.aggregate( + [{$project: {sorted: {$sortArray: {input: "$collatorObjectTestField", sortBy: {a: 1}}}}}], + {collation: {locale: "en", numericOrdering: true}})); }()); |