Как получить постраничный канал для пользователя, который содержит сообщения, созданные пользователями, за которыми он следует? - PullRequest
2 голосов
/ 19 июня 2019

Я разрабатываю серверную часть nodejs для приложения, в котором пользователь сможет видеть сообщения, созданные пользователями, за которыми он / она следует.

Я хочу сделать это, используя мангуста.

Моя пользовательСхема:

const userSchema = new mongoose.Schema({
    name: {
        type: String,
        required: true
    },
    email: {
        type: String,
        required: true
    },
    hashed_password: {
        type: String,
        required: true
    },
    isVerified: {
        type:Boolean,
        default: false
    },
    emailVerificationToken: String,
    emailVerificationTokenExpires: Date,
    followers: [{ type: ObjectId, ref: 'User'}],
    following: [{ type: ObjectId, ref: 'User'}],
    posts: [{type: ObjectId, ref: 'Post'}],
    bio: String,
    website: String
});

Мой постСхема:

const postSchema = new mongoose.Schema({
    title: {
        type: String,
        required: true
    },
    url: {
        type: String,
        required: true
    },
    description: {
        type: String,
    },
    website: String,
    tags : [String],
    createdBy: { type: ObjectId, ref: 'User'}
});

Я пробовал это:

  User.findById(currentUserId)
    .populate("following","posts")
    .populate("following.posts","_id title")
    .skip()
    .limit()
    .exec(function(err,users){
      res.send(users);
    });

Это возвращение постраничных пользователей с подписчиками и заполненными их постами. Я хочу только сообщения всех пользователей. Может кто-нибудь помочь мне через это?

1 Ответ

0 голосов
/ 19 июня 2019

Я думаю, что у вас есть сообщения с ошибками в качестве пинов в вашей userSchema.

Также вы получаете пользователей, вместо этого вы должны получить все сообщения с пользовательскими данными для этого сообщения.

Post.find({})
    .populate("createdBy")
    .exec(function(err,users){
      res.send(users);
    });
...