我有一个类别层次结构,使用多对多关系设置:
分类
name: 'string',
children: {
collection: 'category',
via: 'parents',
dominant: true
},
parents: {
collection: 'category',
via: 'children'
}
我想获得一个顶级类别的列表:所有类别都有一个空的“父母”字段。
我设法通过遍历所有类别并手动检查来实现这一目标:
Category.find()
.populate('parents')
.exec(function (err, categories) {
var topCategories =[];
var done = _.after(categories.length,function(){
res.ok(topCategories)
})
_.forEach(categories, function (category) {
if (category.parents.length == 0)
topCategories.push(category);
done();
})
})
我的问题是,如果有一个更有效的解决方案,因为我的不会扩展到大数目。
感谢。