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
sort
option toUpdateOne
andReplaceOne
operations.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
sort
option toupdateOne()
andreplaceOne()
operationsIf the query of a
updateOne
orreplaceOne
operation matches multiple documents, and thesort
option 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:lint
scripttype(NODE-xxxx)[!]: description
feat(NODE-1234)!: rewriting everything in coffeescript