I'm new to mongoose/mongodb
Say I'm saving something:
var instance = new TestingModel();
instance.test = 'blah2';
instance.save();
So when I save that the instance obj in the db will have, _id and test. But the _id attribute is added to the object only after entering the db. Note: I don't want to give it an id before. However, I want to grab the object in the db because I need to use the _id value, but I don't want to query it again. Is there a way where you save the object in the database and auto returns the database object开发者_如何转开发 so you can get the _id value?
The _id
should be present after saving:
var instance = new TestingModel()
instance.test = 'blah'
instance.save(function(err){
console.log(instance._id) // => 4e7819d26f29f407b0...
})
edit: actually the _id
is set on instantiation, so it should already be there before save:
var instance = new TestingModel()
console.log(instance._id) // => 4e7819d26f29f407b0...
router.post('/', function(req, res) {
var user = new User();
user.name = req.body.name;
user.token = req.body.token;
user.save(function(err, obj) {
if (err)
res.send(err);
res.json({ message: 'User created!', data: obj });
});
});
The correct way to check is the callback of save :
instance.save(function(err,savedObj){
// some error occurs during save
if(err) throw err;
// for some reason no saved obj return
else if(!savedObj) throw new Error("no object found")
else console.log(savedObj);
})
精彩评论