Devi impostare l'opzione nella query useFindAndModify
a false
, come indicato nei documenti.
(la parola chiave di ricerca Le opzioni attualmente supportate sono )
'useFindAndModify':true per impostazione predefinita. Imposta su false per makefindOneAndUpdate() e findOneAndRemove() usa nativefindOneAndUpdate() invece di findAndModify().
e se vedi il file di definizione di mangusta, dove menzionato che chiama il comando di aggiornamento findAndModify.
/**
* 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>;
Aggiornato di recente nei documenti di mangusta (fai clic qui) per questi deprecazione dove menzionato:
FindOneAndUpdate() long di Mongoose precede la funzionefindOneAndUpdate() del driver MongoDB, quindi utilizza invece la funzione findAndModify() del driver MongoDB.
Esistono tre o più modi per evitare l'uso di FindAndModify
:
- A livello globale:imposta l'opzione su false.
// Make Mongoose use `findOneAndUpdate()`. Note that this option is `true`
// by default, you need to set it to false.
mongoose.set('useFindAndModify', false);
- A livello di connessione:possiamo configurare utilizzando le opzioni di connessione:
mongoose.connect(uri, { useFindAndModify: false });
- A livello di query:
await ModelName.findOneAndUpdate({matchQuery},
{$set: updateData}, {useFindAndModify: false});