1
Я пытаюсь обновить документ, который содержит 2 других документа. Для достижения этой цели я использую findOneAndUpdate
, но mongoose бросает мне CastError
(Cast to ObjectId failed
).Mongoose findOneAndUpdate вложенные документы
Мои модели:
user.js
var userSchema = new Schema({
email: String,
info: {
type : Schema.ObjectId,
required : true,
ref : 'Info'
}
});
module.exports = mongoose.model('User', userSchema);
info.js
var infoSchema = new Schema({
firstname: String,
lastname: String
});
module.exports = mongoose.model('Info', infoSchema);
Мой запрос:
var tmp = {
email: req.body.email,
info: {
name: req.body.info.name
}
};
User.findOneAndUpdate({
_id: req.params.id
}, tmp, {
upsert: false,
new: true
}).exec(function(err, doc) {
/* check errors */
/* send response */
});
Что я делаю неправильно? Неужели мои модели плохо настроены?
Спасибо за ответ. К сожалению, мой идентификатор хороший, я проверил. – auk
@auk, я думаю, что нашел вашу проблему ... – zangw