У меня есть база данных MongoDB, содержащая данные о футбольных клубах. В клубе есть игроки и сезоны. У каждого игрока может быть разный номер команды.Как заполнить поддокумент Mongoose данными из другого поддокумента
Рассмотрим следующие Mongoose схемы:
const clubSchema = new mongoose.Schema({
players: [playerSchema],
seasons: [seasonSchema]
});
const personSchema = new mongoose.Schema({
firstName: String,
lastName: String
});
const playerSchema = new mongoose.Schema({
person: personSchema,
picture: String
});
const seasonSchema = new mongoose.Schema({
name: String,
seasonPlayers: [seasonPlayerSchema]
});
const seasonPlayerSchema = new mongoose.Schema({
player: {
type: mongoose.Schema.Types.ObjectId,
ref: "Player"
},
squadNumber: Number
});
Как получить полностью заполненный Club
документ? Так что вместо того, чтобы получить что-то вроде этого:
{
players: [
{
_id: ObjectId("abc123"),
person: {
firstName: "John",
lastName: "Doe"
}
picture: "john.jpg"
}
],
seasons: [
name: "2015-2016",
seasonPlayers: [
{
player: ObjectId("abc123"),
squadNumber: 10
}
]
]
}
Я хочу что-то вроде этого:
{
players: [
{
_id: ObjectId("abc123"),
person: {
firstName: "John",
lastName: "Doe"
}
picture: "john.jpg"
}
],
seasons: [
name: "2015-2016",
seasonPlayers: [
{
player: {
person: {
firstName: "John",
lastName: "Doe"
}
picture: "john.jpg"
},
squadNumber: 10
}
]
]
}
Я пробовал это, но «игрок» получает значение «null» – Korneel
@Korneel. «PlayerSchema» встроен только в клубные документы, а не в собственную модель/коллекцию? – JohnnyHK
Действительно, только встроенный, а не в свою коллекцию – Korneel