Как заполнить двойной вложенный 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"})})
 })

третье заполнение пытается получить всю информацию о пользователе, но это не работает. Любая идея о

Как я должен заполнить всю эту информацию?

Заранее спасибо!

0 ответов

Другие вопросы по тегам