Я создаю поисковый запрос для training sessions
, который вернет мне сведения о сеансе, заполнив данные из coach (ObjectId)
и participants (Array of ObjectIds)
. Я могу заполнить тренера, но не могу заполнить участников. Моя схема сеанса:
const mongoose = require('mongoose');
import { timestamp } from "./plugins/timestamp"
import { User } from './index'
const SessionSchema = new mongoose.Schema({
coach: { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true },
title: { type: String, required: true, default: "Lacrosse Training Session" },
participants: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }]
});
SessionSchema.plugin(timestamp);
export const Session = mongoose.model('Session', SessionSchema);
И я пытаюсь заполнить:
const session = await Session.findById(req.params.id).populate('coach').populate('participants');
Выход Когда я использую только populate('coach')
, я получаю что-то вроде :
coach: {address: {city: "Joes"}, name: "John John", …} <= <= <= POPULATED
participants: ["5ea43590f105a4188358210f", "5ea43590f105a4188358210e", "5ea43590f105a41883582115"]
Но когда я использую populate('coach').populate('participants')
, я получаю того же тренера, но пустых участников (participants: []
)
Почему это так? Как я могу заполнить каждый элемент массива участников?
Спасибо