ホームチームの名前だけをページに出力して、自分のコードをより適切に操作する方法を理解しようとしています。1 つのチームのみをページに印刷し、そのチームのすべての詳細をページに印刷していますが、私は 1 つの部分だけを印刷したいと考えています。
これは私のコードです。それぞれの名前をhometeam
ページに出力したい
app.get('/home', function(req, res) {
Match.findOne({}).populate('hometeam.name').exec(function(err, teams){
util.log(teams);
res.send(teams);
});
});
しかし、ページをロードすると、この一致リストの最初のデータしか取得できません
[
{
"hometeam": "5106e7ef9afe3a430e000007",
"_id": "5113b7ca71ec596125000005",
"__v": 0,
"key": 1360246730427
},
{
"hometeam": "5113c13e0eea687b28000001",
"_id": "5113e951354fe70330000001",
"__v": 0,
"key": 1360259409361
},
{
"hometeam": "5113c13e0eea687b28000001",
"_id": "5113e999354fe70330000002",
"__v": 0,
"key": 1360259481412
}
]
また、入れようとするとutil.log(teams.hometeam.name)
、次のようになります。
TypeError: Cannot call method 'toString' of undefined
しかし、ここでホームチームに属する名前を印刷できるようにしたいと思います。hometeam はデータベース内の Team の objectId にすぎないため、ここで DBreferencing に何か不足していますか?
アップデート:
チーム スキーマ
var Team = new Schema({
'key' : {
unique : true,
type : Number,
default: getId
},
'name' : { type : String,
validate : [validatePresenceOf, 'Team name is required'],
index : { unique : true }
}
});
module.exports.Schema = Team;
module.exports.Model = mongoose.model('Team', Team);
一致スキーマ
var Team = require('../schemas/Team').Schema;
var Match = new Schema({
'key' : {
unique: true,
type: Number,
default: getId
},
'hometeam' : { type: Schema.ObjectId, ref: 'Team' },
'awayteam' : { type: Schema.ObjectId, ref: 'Team' }
});
module.exports = mongoose.model('Match', Match);