summaryrefslogtreecommitdiff
path: root/src/mongo/db/query/query_request.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/query/query_request.cpp')
-rw-r--r--src/mongo/db/query/query_request.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mongo/db/query/query_request.cpp b/src/mongo/db/query/query_request.cpp
index a33557263ac..c12a34630ee 100644
--- a/src/mongo/db/query/query_request.cpp
+++ b/src/mongo/db/query/query_request.cpp
@@ -107,6 +107,7 @@ const char kAllowSpeculativeMajorityReadField[] = "allowSpeculativeMajorityRead"
const char kInternalReadAtClusterTimeField[] = "$_internalReadAtClusterTime";
const char kRequestResumeTokenField[] = "$_requestResumeToken";
const char kResumeAfterField[] = "$_resumeAfter";
+const char kUse44SortKeys[] = "_use44SortKeys";
// Field names for sorting options.
const char kNaturalSortField[] = "$natural";
@@ -411,6 +412,12 @@ StatusWith<unique_ptr<QueryRequest>> QueryRequest::parseFromFindCommand(unique_p
return status;
}
qr->_requestResumeToken = el.boolean();
+ } else if (fieldName == kUse44SortKeys) {
+ Status status = checkFieldType(el, Bool);
+ if (!status.isOK()) {
+ return status;
+ }
+ qr->_use44SortKeys = el.boolean();
} else if (!isGenericArgument(fieldName)) {
return Status(ErrorCodes::FailedToParse,
str::stream() << "Failed to parse: " << cmdObj.toString() << ". "
@@ -595,6 +602,10 @@ void QueryRequest::asFindCommandInternal(BSONObjBuilder* cmdBuilder) const {
if (!_resumeAfter.isEmpty()) {
cmdBuilder->append(kResumeAfterField, _resumeAfter);
}
+
+ if (_use44SortKeys) {
+ cmdBuilder->append(kUse44SortKeys, true);
+ }
}
void QueryRequest::addShowRecordIdMetaProj() {