Как отобразить все сообщения, на которые ссылается зарегистрированный пользователь? - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь понять функцию заполнения Mongoose и до сих пор в тупике из-за доступных ресурсов и документов .

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

var UserSchema = new Schema ({
    username: String,
    password: String,
    posts: [
        {
        type: mongoose.Schema.Types.ObjectId,
        ref: "Post"
        }
    ]
});


var PostSchema = new Schema ({
Title: String, 
Content: String, 
author: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'User',

}
});

У меня настроен паспорт / сеанс, поэтому я могу получить идентификатор активного пользователя.Используя этот идентификатор, я хотел бы отобразить все сообщения пользователя.Я застрял на этом в течение нескольких часов и пытался следовать различным урокам и различным подходам, пожалуйста, кто-нибудь избавит меня от моих страданий!Как мне подойти к этому?

1 Ответ

0 голосов
/ 01 октября 2018

Попробуйте сначала сопоставить пользователей со списком ids (activeUserIds), затем заполните поля posts и author в извлеченных записях.

await User.find({'_id': {$in: [activeUserIds]}})
  .populate({
    path: 'posts',
    model: 'Post',
    populate: ({
      path: 'author',
      model: 'User'
    })
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...