Comments - это массив, вложенный в Post Schema. Я хочу обновить соответствующий пост, добавив новый комментарий в массив комментариев. Но получил ошибку: CastError: сбой приведения к ObjectId для значения «comments» по пути «_id» для модели «post»
- Читать похожие сообщения
- Пытался использовать "mongoose.Types.ObjectId", не работал
- Mongoose версия ^ 5.5.4
- Все идентификаторы, которые я здесь использую, действительны
const PostSchema = new Schema({
...
comments: [
{
user: {
type: Schema.Types.ObjectId,
ref: 'user',
},
body: {
type: String,
required: [true, 'Content required'],
},
}
],
...
});
PostRouter.put('/posts/comments', (req, res) => {
const { id } = req.query;
const userID = req.body.user;
const body = req.body.body;
const comment = {
user: userID,
body: body,
};
Posts
.update({ _id: id }, { $push: { comments: comment }})
.then(result => {
res.status(200).json(result.ok);
})
.catch(err => console.log(err));
});
У меня есть похожий: добавьте "friendID" в пользовательский модальный массив "friends" работает как положено.
const senderID = req.query.sender;
const recipientID = req.query.recipient;
Users .update({ _id: recipientID }, { $push: { friends: senderID }})
.then(result => res.status(200).json(result.ok))
.catch(err => console.log(err));
но «комментарий», который я здесь пытаюсь добавить, - это объект вместо действительной строки идентификатора.
Я думаю, что проблема в массиве "Комментарии", потому что "comment.user" является ссылкой из моей "Пользовательской" схемы. Не знаю, как решить этот вложенный вопрос с ошибкой приведения.