mon goose .populate (), возвращающий пустой массив - PullRequest
0 голосов
/ 20 февраля 2020

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

Вот моя модель пользователя.

Пользователь. js

const mongoose = require("mongoose")
const Schema = mongoose.Schema

const userSchema = new Schema({
    username: { type: String, required: true },
    email: { type: String, required: true },
    password: { type: String, required: true },
    posts: [{
        type: mongoose.Schema.Types.ObjectId,
        ref: "Post"
    }]
}, { timestamps: true })

const User = mongoose.model("User", userSchema)
module.exports = User

Сообщение. js

const mongoose = require("mongoose")
const Schema = mongoose.Schema

const postSchema = new Schema({
  postTitle: { type: String, required: true },
  postDescription: { type: String, required: true },
  user: { type: Schema.Types.ObjectId, ref: "User" },
}, { timestamps: true }
)

const Post = mongoose.model("Post", postSchema)
module.exports = Post

router.get("/posts/:id", usersController.getUserPosts)

usersController. js

    getUserPosts: (req, res) => {
        User.findById(req.params.id).populate("posts").exec((err, posts) => {
            if (err) console.log(err)
            console.log(posts)
        })
    }

Я получаю это:

{ posts: [],
  _id: 5e4e3e7eecd9a53c185117d4,
  username: 'rick',
  email: 'rick@gmail.com',
  createdAt: 2020-02-20T08:08:30.878Z,
  updatedAt: 2020-02-20T08:08:30.878Z,
  __v: 0 }

Куда я иду не так?

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