Du skal indstille indstillingen i forespørgslen useFindAndModify
til false
, som nævnt i dokumenterne.
(søgeordet I øjeblikket understøttede muligheder er )
'useFindAndModify':sand som standard. Indstil til false til makefindOneAndUpdate() og findOneAndRemove() brug nativefindOneAndUpdate() i stedet for findAndModify().
og hvis du ser definitionsfilen for mongoose, hvor det er nævnt, at den kalder findAndModify update-kommandoen.
/**
* 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>;
For nylig opdateret i mongoose-dokumenterne (Klik her) for disse afskrivninger, hvor nævnt:
Mongooses findOneAndUpdate() daterer længe MongoDB-driverensfindOneAndUpdate()-funktionen, så den bruger MongoDB-driverensfindAndModify()-funktionen i stedet.
Der er tre eller flere måder, hvorpå du kan undgå brugen af FindAndModify
:
- På globalt niveau:Indstil indstillingen til falsk.
// Make Mongoose use `findOneAndUpdate()`. Note that this option is `true`
// by default, you need to set it to false.
mongoose.set('useFindAndModify', false);
- På forbindelsesniveau:vi kan konfigurere ved hjælp af forbindelsesmulighederne:
mongoose.connect(uri, { useFindAndModify: false });
- På forespørgselsniveau:
await ModelName.findOneAndUpdate({matchQuery},
{$set: updateData}, {useFindAndModify: false});