Подтвердить что ты не робот

Mongoose с mongodb, как вернуть только что сохраненный объект?

Я новичок в mongoose/mongodb

Скажем, что я что-то экономию:

var instance = new TestingModel();
instance.test = 'blah2';
instance.save();

Итак, когда я сохраняю, что экземпляр obj в db будет иметь, _id и test. Но атрибут _id добавляется к объекту только после ввода db. Примечание. Я не хочу давать ему идентификатор раньше. Тем не менее, я хочу захватить объект в db, потому что мне нужно использовать значение _id, но я не хочу запрашивать его снова. Есть ли способ сохранить объект в базе данных и автоматически возвращает объект базы данных, чтобы вы могли получить значение _id?

4b9b3361

Ответ 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); })