В моей базе данных есть две коллекции, игроки и сферы.Я создал схему для них обоих, и они ссылаются друг на друга.Я запрашиваю коллекцию игроков и пытаюсь заполнить поле населения.Затем я пытаюсь console.log результатов, который возвращает Undefined.
player.js (модель)
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const PlayerSchema = new Schema({
name: {
type: String,
required: true
},
wins: {
type: Number,
required: true
},
losses: {
type: Number,
required: true
},
race: {
type: String,
required: true
},
realm: {
type: Schema.Types.ObjectId,
required: true,
ref: 'Realm'
}
});
module.exports = mongoose.model('Player', PlayerSchema, 'players');
realm.js (модель)
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const RealmSchema = new Schema({
name: {
type: String,
required: true
},
population: [{
type: Schema.Types.ObjectId,
ref: 'Player'
}]
});
module.exports = mongoose.model('Realm', RealmSchema, 'realms');
player.js (контроллер)
const Player = require('../models/player.js');
const Realm = require('../models/realm.js');
exports.getPlayers = (req, res) => {
Player.find()
.populate({
path: 'realm',
select: '_id name'
})
.then((players) => {
console.log(players.realm);
res.json(players);
})
.catch(err => {
console.log(err);
});
}
Ожидаемые результаты будут выглядеть примерно так:
{
"players": [
{
"name": "Grubby",
"wins": 2397,
"losses": 632,
"race": "Orc",
"realm": {
"_id": "5ca1985ae03dd80007aa008f",
"name": "EU"
}
}
]
}