Mongoose с mongodb, как вернуть только что сохраненный объект?
Я новичок в mongoose/mongodb
Скажем, что я что-то экономию:
var instance = new TestingModel();
instance.test = 'blah2';
instance.save();
Итак, когда я сохраняю, что экземпляр obj в db будет иметь, _id и test. Но атрибут _id добавляется к объекту только после ввода db. Примечание. Я не хочу давать ему идентификатор раньше. Тем не менее, я хочу захватить объект в db, потому что мне нужно использовать значение _id, но я не хочу запрашивать его снова. Есть ли способ сохранить объект в базе данных и автоматически возвращает объект базы данных, чтобы вы могли получить значение _id?
Ответы
Ответ 1
_id
должен присутствовать после сохранения:
var instance = new TestingModel()
instance.test = 'blah'
instance.save(function(err){
console.log(instance._id) // => 4e7819d26f29f407b0...
})
edit: на самом деле _id
задается при создании экземпляра, поэтому он должен быть уже до сохранения:
var instance = new TestingModel()
console.log(instance._id) // => 4e7819d26f29f407b0...
Ответ 2
правильный способ проверки - обратный вызов 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);
})