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);