feat(NODE-6290): add sort option to UpdateOne and ReplaceOne #4229
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Add
sortoption toUpdateOneandReplaceOneoperations.Downstream changes for DRIVERS-2822.
What is changing?
If a query in an updateOne/replaceOne operation returns more than one document and the sort operation is provided, the operation will return the document that is first through the sort.
If server < 8.0 and/or the sort option is provided in updateMany/replaceMany, the server will throw an error.
Is there new documentation needed for these changes?
Yes, there are new API docs.
What is the motivation for this change?
See above and support for new server options.
Release Highlight
Add
sortoption toupdateOne()andreplaceOne()operationsIf the query of a
updateOneorreplaceOneoperation matches multiple documents, and thesortoption is provided, the first document matched by the sort order will be updated.This option is only supported by server versions
>= 8.0. Older servers will report an error for using this option. In addition, the server will also report an error if the caller explicitly provides a value withupdateMany()orreplaceMany().Double check the following
npm run check:lintscripttype(NODE-xxxx)[!]: descriptionfeat(NODE-1234)!: rewriting everything in coffeescript