diff options
Diffstat (limited to 'src/mongo/db/query/query_request.cpp')
-rw-r--r-- | src/mongo/db/query/query_request.cpp | 11 |
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() { |