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
:
- 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);
- A nivel de conexión: podemos configurar utilizando las opciones de conexión:
mongoose.connect(uri, { useFindAndModify: false });
- 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});