summaryrefslogtreecommitdiff
path: root/src/mongo
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo')
-rw-r--r--src/mongo/db/index/sort_key_generator.cpp9
-rw-r--r--src/mongo/db/index/sort_key_generator_test.cpp2
-rw-r--r--src/mongo/db/pipeline/document_source_sort.cpp2
3 files changed, 9 insertions, 4 deletions
diff --git a/src/mongo/db/index/sort_key_generator.cpp b/src/mongo/db/index/sort_key_generator.cpp
index 7f9bd3dd018..db3602ef8d1 100644
--- a/src/mongo/db/index/sort_key_generator.cpp
+++ b/src/mongo/db/index/sort_key_generator.cpp
@@ -52,9 +52,14 @@ SortKeyGenerator::SortKeyGenerator(const BSONObj& sortSpec, const CollatorInterf
invariant(metaElem.fieldNameStringData() == "$meta"_sd);
if (metaElem.valueStringData() == "textScore"_sd) {
_patternPartTypes.push_back(SortPatternPartType::kMetaTextScore);
- } else {
- invariant(metaElem.valueStringData() == "randVal"_sd);
+ } else if (metaElem.valueStringData() == "randVal"_sd) {
_patternPartTypes.push_back(SortPatternPartType::kMetaRandVal);
+ } else if (metaElem.valueStringData() == "searchScore"_sd) {
+ uasserted(31218, "$meta sort by 'searchScore' metadata is not supported");
+ } else if (metaElem.valueStringData() == "searchHighlights"_sd) {
+ uasserted(31219, "$meta sort by 'searchHighlights' metadata is not supported");
+ } else {
+ uasserted(31138, "Illegal $meta sort: " + metaElem.valueStringData());
}
_sortHasMeta = true;
}
diff --git a/src/mongo/db/index/sort_key_generator_test.cpp b/src/mongo/db/index/sort_key_generator_test.cpp
index 485a6a3d0a5..9ac04b3052d 100644
--- a/src/mongo/db/index/sort_key_generator_test.cpp
+++ b/src/mongo/db/index/sort_key_generator_test.cpp
@@ -162,7 +162,7 @@ DEATH_TEST(SortKeyGeneratorTest,
DEATH_TEST(SortKeyGeneratorTest,
SortPatternComponentWithUnknownMetaKeywordIsFatal,
- "Invariant failure metaElem.valueStringData() == \"randVal\"_sd") {
+ "Illegal $meta sort: unknown") {
MONGO_COMPILER_VARIABLE_UNUSED auto ignored =
stdx::make_unique<SortKeyGenerator>(BSON("a" << BSON("$meta"
<< "unknown")),
diff --git a/src/mongo/db/pipeline/document_source_sort.cpp b/src/mongo/db/pipeline/document_source_sort.cpp
index 395d517ce2d..bdd22510961 100644
--- a/src/mongo/db/pipeline/document_source_sort.cpp
+++ b/src/mongo/db/pipeline/document_source_sort.cpp
@@ -294,7 +294,7 @@ intrusive_ptr<DocumentSourceSort> DocumentSourceSort::create(
}
uassert(15974,
- "$sort key ordering must be specified using a number or {$meta: 'textScore'}",
+ str::stream() << "Illegal key in $sort specification: " << keyField,
keyField.isNumber());
int sortOrder = keyField.numberInt();