Mi aplicación funciona localmente, pero en producción parece que no puedo obtener algo específico de mongo usando mongoose. He intentado:
var Coach = mongoose.model('Coach', CoachSchema);
Coach.findOne({ _id: req.session.userId}, function (err, coach) {})Coach.find({ _id:req.session.userId}, function (err, coach) {})Coach.findById(req.session.userId).exec(function(err, coach)){}) Recibí el mismo error: Cast to ObjectId failed for value "586bc06bd09d870012baa5b8" at path "_id" for model "Coach"
Como dije, funciona localmente tanto con nodemon como con heroku local , pero en mi servidor de producción de heroku no funciona.
He leído un poco sobre este tipo de error de conversión aquí:
Pero no hay suerte todavía. Cualquier ayuda sería genial. Gracias de antemano.
Me había enfrentado a este mismo problema a veces, para la versión de mongoose > 4.7.2
Lo resolví instalando mongoose versión 4.7.2
npm install mongoose@4.7.2 también, puede cambiar su package.json para que use esta versión exacta de mongoose.
"mongoose" : "4.7.2" Este error se debe al paquete bson . que da el error
Hex no es una función en la creación de ObjectId
Lea más sobre esto en este enlace.
Este error comenzó cuando mongoose se actualizó de la versión 4.7.2 a la 4.7.3 . Puede actualizar a una versión más nueva de mongoose cuando se resuelva este error. Puede rastrear el error aquí y aquí .
Entonces, finalmente puede resolver este error instalando mongoose versión 4.7.2