Как заполнить двойной вложенный ObjectID?
У меня возникли проблемы с поиском способа наполнения пользователей массивом:
У меня есть коллекция событий с этой структурой:
const eventSchema = new Schema({
title: { type: String, required: false },
description: { type: String, required: false },
image: { type: String, required: false },
recipe: { type: String, required: false },
ingredients: [{ type: String, required: false }],
date: { type: Date, required: false },
places: { type: Number, required: false },
_foodCategory: { type: Schema.Types.ObjectId, ref: 'FoodCategory', required: false },
cookingTime: { type: String, required: false },
contribution: { type: Number, required:false },
_host: { type: Schema.Types.ObjectId, ref: 'User', required: false },
_guests: [{ type: Schema.Types.ObjectId, ref: 'User', required: false }],
comments: [{
user: { type: Schema.Types.ObjectId, ref: 'User', required: false },
comment: { type:String, required:false }
}],
review : [{
title: { type: String },
comment: { type: String },
rating : { type: String },
puntuation: { type: Number }
}],
location_lat: { type: Number, required: false },
location_lng: { type: Number, required: false },
city : { type: String, required: false },
address : { type: String, required: false },
evaluation: [{ type: Number, require:false }],
},
{ timestamps: { createdAt: "created_at",
updatedAt: "updated_at"
}
}
);
В этом случае я заполнил гостей и организатора мероприятия, чтобы их информация была доступна в представлении. Кроме того, у меня есть все комментарии к этим событиям, но я хотел бы получить всю информацию о пользователе, который написал каждый комментарий. Я делаю так:
router.get('/:id', (req, res, next)=>{
const eventId = req.params.id;
Event.findById(eventId)
.populate("_host")
.populate("_guests")
.populate({ path: 'comments', select: user })
.then(event => {
return res.status(200).json(event)
})
.catch(err => {
return res.status(500).json({message: "Error getting event"})})
})
третье заполнение пытается получить всю информацию о пользователе, но это не работает. Любая идея о
Как я должен заполнить всю эту информацию?
Заранее спасибо!