3
言って、私はManager
スキーマがあります。マングース複数深いを移入
{
name: { type: String },
clients: [{ type: Mongoose.Schema.ObjectId, ref: 'Client'}]
}
をそして、私がClient
スキーマがあります(同様
{
name : { type String },
cars : [{ type: Mongoose.Schema.ObjectId, ref: 'Car' }],
houses: [{ type: Mongoose.Schema.ObjectId, ref: 'House' }]
}
そしてCar
とHouse
をその構造は、問題のために重要ではありません1つの.populate()
の複数フィールドに複数のClient
のフィールドを深く入力するにはどうすればよいですか?
Manager.find()
.populate({
path: 'users',
populate: { path: 'cars' },
populate: { path: 'houses' }
});
をし、それが働いていた場合(私は以前.populate()
メソッドに渡されたpopulate
キーを宣言上書きされる)、それは本当に私を驚かせるでしょう:何が私が試してみました。私の例では、明らかにユーザーあたりのフィールドがhouses
になっています。正直なところ、いいえ、何もdocsにはありません。サポートされていますか?私はそれが私の例に基づいて '浅い'人口のためであることを知っています:
User.populate('cars')
.populate('houses')
深いのはどうですか?
確かにそれはちょうど 'Users.populate({パスです: 'ユーザー'、移入:{パス:「車住宅 '}}) '。現行レベルのパスのスペース区切りリストとして '' cars houses ''を使用しています。少なくとも、それは単一のレベルに当てはまるので、それは確かに他のものにとって同じでなければならない。 –
ありがとうございました。ドキュメントの説明を見落としましたか? – wscourge
スペースで区切られたリストは、ドキュメントの先頭のどこかに記載されています。これは、あなたが言及した '.populate()。populate()'に取って代わるものです。 –