Saltar al contenido

La instancia de Mongoose .save () no funciona

Te sugerimos que revises esta respuesta en un entorno controlado antes de enviarlo a producción, saludos.

Solución:

Tengo el mismo problema. mi problema era cambiar un array dentro de db, luego, cuando intento usar .save(), no entendió que cambié nada, entonces .save() no funcionó. Solo uso markModified() antes de usar .save() y mi problema se resuelve.

este es mi código con problema: (no funciona)

club.members[index].name = new_name;
club.save();

este es mi código resuelto: (trabajando)

club.members[index].name = new_name;
club.markModified('members');
club.save();

¡disfrutar!

No voy a eliminar esta pregunta porque las personas también pueden encontrar este problema. En realidad, el problema no estaba relacionado con MongoDb o Mongoose. Cuando usted llama Object.save() cadena de responsabilidad es como a continuación:

  1. Esquema.pre(“guardar”)
  2. Guardar datos en dabe
  3. Esquema.post(“guardar”)

Así que si bloqueas pre("save") y no llames next() controlador no podrá guardar su documento. Este fue mi caso, se me olvidó el next() llame dentro de una declaración if e intenté encontrar el error durante más de 3 horas.

user.pre("save", function(next) 
    if(!this.trial)
        //do your job here
        next();
    

Cuando this.trial == trueel siguiente controlador no será accesible.

Para evitar errores como este, debemos cuidar la cobertura de sucursales, los reporteros pueden mostrarnos códigos no probados. Su problema podría estar relacionado con esto también. Asegúrate de llamar next() si su documento debe guardarse.

Versión fija

user.pre("save", function(next) 
    if(!this.trial)
        //do your job here
    
    next();

Esto suena loco… y he estado tratando de solucionar este problema durante horas. Miré tantas publicaciones de desbordamiento de pila… es increíble.

¿Y sabes lo que era? No estaba especificando la base de datos al final de la url.

Entonces, en lugar de

"mongodb://127.0.0.1:27017/test"

Yo Tuve

"mongodb://127.0.0.1:27017

Perdí un día entero en esto. Realmente desearía que me dieran errores de algún tipo. Guardar un registro siempre regresaba bien. Y en el registro de la base de datos, me estaba conectando bien. Pero realmente necesitaba mirar los detalles. Sí, se estaba conectando a la instancia de mongo, pero no a la base de datos en sí. ¡puaj!

Si te gusta la informática, tienes la libertad de dejar un enunciado acerca de qué le añadirías a este enunciado.

¡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 *