开发者

Mongoose with mongodb how to return just saved object?

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜