Прямо сейчас я работаю над проектом в социальных сетях, где пользователи могут легко ставить лайки и комментировать сообщения. Однако, когда я отправляю запрос на поиск сообщений, связанных с комментариями пользователя, они не заполняются соответствующим образом.
Модель сообщения
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const postSchema = new Schema({
text: {
type: String,
required: [true, 'Name is required']
},
photo: {
data: Buffer,
contentType: String
},
likes: [{ type: mongoose.Schema.ObjectId, ref: 'User' }],
comments: [
{
text: String,
created: { type: Date, default: Date.now },
postedBy: { type: mongoose.Schema.ObjectId, ref: 'User' }
}
],
postedBy: { type: mongoose.Schema.ObjectId, ref: 'User' },
created: {
type: Date,
default: Date.now
}
});
const Post = mongoose.model('Post', postSchema);
module.exports = Post;
Это соответствующий контроллер для этого запроса
exports.listPostByUser = (req, res, next) => {
Post.find({ postedBy: req.profile._id })
.populate('comments', 'text created')
.populate('comments.postedBy', '_id name')
.populate('postedBy', '_id name')
.exec((err, posts) => {
if (err) {
return res.status(400).json({
error: 'errorHandler.getErrorMessage(err)'
});
}
res.json(posts);
});
};
Когда я регистрирую req.profile._id , он правильно находит userId, но комментарии не заполняются.