Mongoose findOneAndUpdate не работает

Я пытаюсь использовать «findOneAndUpdate» в мангусте, и обновленный JS-объект, который я отправляю, не сохраняется в монго. Я не получаю ошибку при сохранении, но возвращаю значение null для обновленного объекта. Любые идеи, что я могу делать неправильно? В этом примере мы пытаемся обновить весь объект, хранящийся в монго, т.е. перезаписать объект имени.

var query = {"_id": id};
var update = {name: {first: 'john', last: 'smith'}};
var options = {new: true};
People.findOneAndUpdate(query, update, options, function(err, person) {
  if (err) {
    console.log('got an error');
  }

  // at this point person is null.
});

person lostintranslation    schedule 27.02.2013    source источник


Ответы (1)


Оказывается, идентификатор, который я искал, не существует, поэтому возвращается нуль. Работает как положено!

person lostintranslation    schedule 28.02.2013
comment
По-видимому, если в вашем документе было больше полей, они все удаляются. Я уверен, что это то, чего можно было бы как-то избежать, хотя - person Sergio Majluf; 24.04.2014
comment
@SergioMajluf Вы можете использовать $set для обновления только необходимых полей. - person Haywire; 27.10.2014
comment
вернитесь в свой if(err) или отклоните, если вы используете промисы - person Aamir Afridi; 14.11.2015