summaryrefslogtreecommitdiff
path: root/jstests/aggregation
diff options
context:
space:
mode:
authorNeil Shweky <neilshweky@gmail.com>2021-12-04 20:49:16 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-12-04 21:28:39 +0000
commitc76f0aecc5adfff499941a60764a89f8bc2f84e1 (patch)
tree56eab7767378097bdab52c7e4a513dccc2feb3c4 /jstests/aggregation
parentfbe42b59f77c645413ebb60f6d11df7acf9612ee (diff)
downloadmongo-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.js33
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}}));
}());