Я борюсь с небольшой проблемой. Я хочу заполнить пользователей комментариями.
Схема пользователя:
const userSchema = mongoose.Schema({
username: {
type: String,
required: true,
},
password: {
type: String,
required: true
}
});
Схема комментариев:
const commentSchema = mongoose.Schema({
comment:{
type: String
},
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
});
Я уже создал пользователя и комментарий. Все нормально, когда я пытаюсь найти оба объекта.
Комментарий:
Comment.find({}).exec((err, comments) => {
console.log(comments);
});
Вывод:
[
{
_id: 5e62472d5f593f3c642ee1e5,
comment: 'something',
user: 5e624522366d8c4150278a64,
__v: 0
}
]
Пользователь:
User.find({}).exec((err, users) => {
console.log(users);
});
Выход:
[
{
_id: 5e624522366d8c4150278a64,
username: "SomeBodY",
password: "$2a$10$nm5BJ7zeI1tet3UEzcakf.8xoTgV/Yti5l1EKNg5inxiehevUlGRm"
}
]
Проблема в том, что я использую .populate('user')
для * Модель 1036 * возвращает комментарий как undefined
в консоли. Я пробовал разные методы и даже отбрасывал базу данных, но безуспешно.
Вот маршрут, когда это происходит
// Route To Single Project
router.get('/:projectId', (req, res) => {
const requestedProjectId = req.params.projectId;
Project.findById({_id: requestedProjectId}).populate('image_file').exec((err, project) => {
Rating.find({projectId: requestedProjectId}, (err, ratings) => {
Rating.countDocuments({projectId: requestedProjectId}, (err, count) => {
Comment.find({projectId: requestedProjectId}).populate('user').exec((err, comments) => {
console.log(comments)
if(err) return next(err);
res.render('project', { ... });
});
});
});
});
});