sql >> Database >  >> NoSQL >> MongoDB

DeprecationWarning:collection.findAndModify is verouderd. Gebruik in plaats daarvan findOneAndUpdate, findOneAndReplace of findOneAndDelete?

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 :

  1. 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);
  1. Op verbindingsniveau:we kunnen configureren met behulp van de verbindingsopties:
    mongoose.connect(uri, { useFindAndModify: false });
  1. Op zoekopdrachtniveau:
   await ModelName.findOneAndUpdate({matchQuery},
   {$set: updateData}, {useFindAndModify: false});



  1. Nginx gebruiken om inhoud rechtstreeks vanuit een redis-cache weer te geven

  2. Redis installeren en configureren op Ubuntu

  3. Voorwaardelijke $ som in MongoDB

  4. Mongo C# JSON-lezer verwachtte een waarde maar vond 'replSetGetStatus'