Метод find в mon goose js не работает с заполнением - PullRequest
0 голосов
/ 19 июня 2020

Прямо сейчас я работаю над проектом в социальных сетях, где пользователи могут легко ставить лайки и комментировать сообщения. Однако, когда я отправляю запрос на поиск сообщений, связанных с комментариями пользователя, они не заполняются соответствующим образом.

Модель сообщения

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, но комментарии не заполняются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...