我是mongoose / mongodb的新手
说我保存了一些东西:
var instance = new TestingModel();
instance.test = 'blah2';
instance.save();
因此,当我保存db中的实例obj将具有,_id和test时。但只有在进入db后才会将_id属性添加到对象中。注意:我之前不想给它一个id。但是,我想抓住数据库中的对象,因为我需要使用_id值,但我不想再次查询它。有没有办法将对象保存在数据库中并自动返回数据库对象,以便获取_id值?
答案 0 :(得分:23)
保存后_id
应该出现:
var instance = new TestingModel()
instance.test = 'blah'
instance.save(function(err){
console.log(instance._id) // => 4e7819d26f29f407b0...
})
编辑:实际上_id
是在实例化时设置的,所以在保存之前它应该已存在:
var instance = new TestingModel()
console.log(instance._id) // => 4e7819d26f29f407b0...
答案 1 :(得分:0)
检查的正确方法是保存的回调
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);
})
答案 2 :(得分:0)
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 });
});
});