diff options
Diffstat (limited to 'src/mongo/db/rs_local_client.cpp')
-rw-r--r-- | src/mongo/db/rs_local_client.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/mongo/db/rs_local_client.cpp b/src/mongo/db/rs_local_client.cpp index 6fdc49907f3..65cf9a284fa 100644 --- a/src/mongo/db/rs_local_client.cpp +++ b/src/mongo/db/rs_local_client.cpp @@ -139,18 +139,20 @@ StatusWith<Shard::QueryResponse> RSLocalClient::queryOnce( } DBDirectClient client(opCtx); - Query querySettings; + FindCommandRequest findRequest{nss}; + findRequest.setFilter(query); if (!sort.isEmpty()) { - querySettings.sort(sort); + findRequest.setSort(sort); } if (hint) { - querySettings.hint(*hint); + findRequest.setHint(*hint); + } + if (limit) { + findRequest.setLimit(*limit); } - querySettings.readPref(readPref.pref, BSONArray()); try { - std::unique_ptr<DBClientCursor> cursor = - client.query(nss, query, querySettings, limit.get_value_or(0)); + std::unique_ptr<DBClientCursor> cursor = client.find(std::move(findRequest), readPref); if (!cursor) { return {ErrorCodes::OperationFailed, |