假设我有以下三种猫鼬模式:
var MediaSchema = new Schema({
source: string
});
var ElementSchema = new Schema({
media: {type: Number, ref: 'MediaSchema'}
children: [ElementSchema]
});
var RootSchema = new Schema({
elements: [ElementSchema]
});
如您所见,我的ElementSchema和存储为RootSchema的嵌套子文档,并且是树状结构(一个元素具有一个子数组,依此类推)
我的问题是:如何自动填充树中所有元素的媒体引用?
我可以使用以下代码填充第一级元素媒体参考:
Root.find().populate([{ path: 'elements.media'}]).exec();
以下内容也可以获取第二级引用
Root.find().populate([
{ path: 'elements.media'},
{ path: 'elements.children.media'}]).exec();
我可以执行以下操作,通过将另一个子级添加到elements.children中来获得下一个级别的锁定(只要我知道我不会超过4个级别的锁定,我就可以这样做),但是有更好(通用)的方法吗?
感谢您的回答!