I have those code running try to save an object into MongoDB.
The .save()
never got success run. the code running fine.
.save()
method doesn't work.
var conn = mongoose.createConnection(mongoUrl, {auth: {authdb: "admin"}});
conn.on('error', function (err) {
throw err;
});
conn.once('open', function callback() {
console.log("connected to " + mongoUrl);
var cacheSchema = mongoose.Schema({}, {strict: false});
cacheSchema.set('collection', 'caches');
// you need to specify which connection is uing.
var Cache = conn.model('cache', cacheSchema);
var measure = new Cache();
measure['test'] = "test";
measure.save(function(err){
console.log('test');
});
});
Mongoose | save() Function The save() function is used to save the document to the database. Using this function, new documents can be added to the database.
While save() returns a promise, functions like Mongoose's find() return a Mongoose Query . Mongoose queries are thenables. In other words, queries have a then() function that behaves similarly to the Promise then() function. So you can use queries with promise chaining and async/await.
Mongoose save with an existing document will not override the same object reference. Bookmark this question.
1 Answer. The . save() is considered to be an instance method of the model, while the . create() is called straight from the Model as a method call, being static in nature, and takes the object as a first parameter.
I just ran into a similar issue in my code. For mine, I was dealing with an object within my user document. I had to run a user.markModified('object')
before the user.save()
to ensure the changes were saved to the database.
My running theory is that Mongoose wasn't tracking items unset or removed from the database automatically
Please read this part of documentation from mongoose and try the following:
var measure = new Cache({test:'teste'});
// or measure.set('test', 'teste');
measure.save(function (err) {
console.log(err);
});
You will be able to see the issue if there's any.
Update the issue is using:
var Cache = conn.model('cache', cacheSchema);
instead of
var Cache = mongoose.model('cache', cacheSchema);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With