U moet de optie instellen in de query useFindAndModify
naar false
, zoals vermeld in de documenten.
(zoekwoord Momenteel ondersteunde opties zijn )
'useFindAndModify':standaard true. Stel in op false om makefindOneAndUpdate() te maken en findOneAndRemove() gebruikt nativefindOneAndUpdate() in plaats van findAndModify().
en als je het definitiebestand van mangoest ziet, waar vermeld dat het de opdracht findAndModify update aanroept.
/**
* Issues a mongodb findAndModify update command.
* Finds a matching document, updates it according to the update arg,
passing any options,
* and returns the found document (if any) to the callback. The query
executes immediately
* if callback is passed else a Query object is returned.
*/
findOneAndUpdate(): DocumentQuery<T | null, T>;
Onlangs bijgewerkt in de mangoest-documenten (klik hier) voor deze beëindiging waar vermeld:
Mongoose's findOneAndUpdate() dateert van vóór de MongoDB-stuurprogramma'sfindOneAndUpdate()-functie, dus het gebruikt in plaats daarvan de MongoDB-stuurprogramma'sfindAndModify()-functie.
Er zijn drie of meer manieren waarop u het gebruik van FindAndModify
. kunt vermijden :
- Op algemeen niveau:stel de optie in op false.
// Make Mongoose use `findOneAndUpdate()`. Note that this option is `true`
// by default, you need to set it to false.
mongoose.set('useFindAndModify', false);
- Op verbindingsniveau:we kunnen configureren met behulp van de verbindingsopties:
mongoose.connect(uri, { useFindAndModify: false });
- Op zoekopdrachtniveau:
await ModelName.findOneAndUpdate({matchQuery},
{$set: updateData}, {useFindAndModify: false});