猫鼬-如何在递归嵌入式架构中填充引用?

时间:2019-05-02 16:50:44

标签: mongodb mongoose

假设我有以下三种猫鼬模式:

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个级别的锁定,我就可以这样做),但是有更好(通用)的方法吗?

感谢您的回答!

0 个答案:

没有答案