ここでいくつかの助けを借りることができます.populateメソッドが期待どおりに機能しない理由がわかりません. 中に人がいる「部屋」をモデル化したいと思います。
var PersonSchema = new Schema({
_id : Schema.ObjectId,
name : String,
});
var Person = mongoose.model('Person', PersonSchema, 'Person');
var RoomSchema = new Schema({
_id : Schema.ObjectId,
name : String,
People : [{ type: Schema.ObjectId, ref: 'Person' }],
});
var Room = mongoose.model('Room', RoomSchema, 'Room');
したがって、1 つのエントリを持つ Person コレクションがあります。
{
"name" : "person1",
"_id" : ObjectId("4f9e5bb68bcd69fb0c000002")
}
および 1 つのエントリを持つ Room コレクション:
{
"_id" : ObjectId("4f9e5bb68bcd69fb0c000001"),
"name" : "room1",
"People" : [ ObjectId("4f9e5bb68bcd69fb0c000002") ]
}
このクエリを実行しようとすると:
Room.findOne({ 'name': 'room1' }).populate('People').run(function (err, result) {
if(err) console.log(err);
console.log(result);
});
私は出力として得ます:
{ _id: 4f9e5bb68bcd69fb0c000001,
name: 'room1',
People: []
}
Mongoose が people フィールドに入力しないのはなぜですか? 何が間違っているのか理解できません。