remove findone false array mongodb mongoose

mongodb - findone - Mongoose.js instance.save() callback no disparando



mongoose schema strict false (2)

La respuesta publicada no resuelve el problema. Desafortunadamente, no puedo simplemente actualizar mi base de datos, por lo que tampoco es una solución para mí. Pero aquí encontré una solución a este problema: https://github.com/Automattic/mongoose/issues/4064

Simplemente use .$__save lugar de .save como se muestra:

var b = new BookModel({title : ''aaaaaa''}); b.$__save({}, function(e){ if(e){ console.log(''error'') // callback will show if e exists }else{ console.log(''no error'') // callback will show ''no error'' }});

var mongo = require(''mongoose''); var connection = mongo.createConnection(''mongodb://127.0.0.1/test''); connection.on("error", function(errorObject){ console.log(errorObject); console.log(''ONERROR''); }); var Schema = mongo.Schema; var BookSchema = new Schema({ title : {type : String, index : {unique : true}}}); var BookModel = mongo.model(''abook'', BookSchema); var b = new BookModel({title : ''aaaaaa''}); b.save( function(e){ if(e){ console.log(''error'') }else{ console.log(''no error'') }});

Ni el ''error'' ni ''ningún error'' se imprimen en la terminal. Además, la conexión. En ''error'' no parece disparar tampoco. Confirmé que MongoDb se está ejecutando.


este es un caso donde está agregando el modelo al objeto mangosta global pero abriendo una conexión separada mongo.createConnection() que los modelos no son parte. Como el modelo no tiene conexión, no puede guardarse en el db.

esto se resuelve conectando a mongo en la conexión de mangosta global:

var connection = mongo.createConnection(''mongodb://127.0.0.1/test''); // becomes var connection = mongo.connect(''mongodb://127.0.0.1/test'');

o agregando sus modelos a su conexión separada:

var BookModel = mongo.model(''abook'', BookSchema); // becomes var BookModel = connection.model(''abook'', BookSchema);