Saltar al contenido

DeprecationWarning: collection.findAndModify está en desuso. ¿Utilizar findOneAndUpdate, findOneAndReplace o findOneAndDelete en su lugar?

Solución:

Debes configurar la opción en la consulta. useFindAndModify para false, como se menciona en los documentos.

(buscar la palabra clave Las opciones admitidas actualmente son)

‘useFindAndModify’: verdadero por defecto. Establézcalo en falso para que findOneAndUpdate () y findOneAndRemove () usen findOneAndUpdate () nativo en lugar de findAndModify ().

y si ve el archivo de definición de mangosta, donde se menciona que llama al comando de actualización 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>;

Recientemente actualizado en los documentos de mangosta (haga clic aquí) para estos obsoletos donde se menciona:

FindOneAndUpdate () de Mongoose es anterior a la función findOneAndUpdate () del controlador MongoDB, por lo que en su lugar utiliza la función findAndModify () del controlador MongoDB.

Hay tres formas o más mediante las cuales puede evitar el uso de FindAndModify:

  1. A nivel global: establezca la opción en falso.
// Make Mongoose use `findOneAndUpdate()`. Note that this option is `true`
// by default, you need to set it to false.
mongoose.set('useFindAndModify', false);
  1. A nivel de conexión: podemos configurar utilizando las opciones de conexión:
    mongoose.connect(uri, { useFindAndModify: false });
  1. A nivel de consulta:
   await ModelName.findOneAndUpdate({matchQuery},
   {$set: updateData}, {useFindAndModify: false});

Cambie la configuración de la mangosta globalmente de esta manera:

mongoose.set('useFindAndModify', false);

O pase las opciones en su cadena de consulta como esta:

Person.findOneAndUpdate({_id: id}, {$set: body}, {new: true, useFindAndModify: false}).then(..

También puede administrar las otras advertencias de desaprobación de mangosta como documentos de mención

mongoose.set('useNewUrlParser', true);
mongoose.set('useCreateIndex', true);

Eso es todo.

también puede pasar las opciones en la conexión con la opción de requisito useNewUrlParser. Mire lo siguiente -> https://mongoosejs.com/docs/deprecations.html

mongoose.connect(config.MONGODB_URI, { useNewUrlParser: true, useFindAndModify: false}); 
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *