sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB mongoose Advertencia de desaprobación

Actualización:

5.2.10 está disponible y disponible para descargar aquí.

Para obtener más información sobre los documentos, puede ver la página https://mongoosejs.com/docs/deprecations

Para obtener más información sobre el problema y su solución, https://github.com/Automattic/mongoose/issues/6880

Respuesta original:

La versión Mongoose 5.2.9 actualizó el controlador mongodb nativo a 3.1.3 en el que se agregaron cambios para generar mensajes de advertencia cuando se llama al método de controlador nativo en desuso.

fields la opción está en desuso y se reemplaza con projection opción.

Tendrá que esperar a que Mongoose realice cambios al final para reemplazar la opción de campos con proyección. La corrección está programada para la versión 5.2.10.

Por el momento, puede volver a 5.2.8, que suprimirá todas las advertencias de obsolescencia.

npm install [email protected]

Para todas las demás advertencias obsoletas, debe abordarlas caso por caso.

Verá otras advertencias de obsolescencia cuando utilice otros métodos de recopilación.

DeprecationWarning: collection.findAndModify is deprecated. Use findOneAndUpdate, findOneAndReplace or findOneAndDelete instead.
DeprecationWarning: collection.remove is deprecated. Use deleteOne, deleteMany, or bulkWrite instead.
DeprecationWarning: collection.update is deprecated. Use updateOne, updateMany, or bulkWrite instead.
DeprecationWarning: collection.save is deprecated. Use insertOne, insertMany, updateOne, or updateMany instead.
DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.

Todos findOne* Los métodos de escritura de mongoose por defecto usan findAndModify método que está en desuso en el controlador nativo mongodb.

Usa mongoose.set('useFindAndModify', false); para que mongooose llame al findOne* apropiado método en el controlador nativo mongodb.

Para remove y update reemplaza esas llamadas con delete* y update* respectivamente.

Para save reemplace esas llamadas con insert* / update* respectivamente.

Usa mongoose.set('useCreateIndex', true); hacer que mongooose llame al createIndex método en el controlador nativo mongodb.