Sails.js基于多对多关系进行过滤

时间:2015-07-22 09:14:31

标签: many-to-many sails.js waterline

我有一个类别层次结构,使用多对多关系设置:

分类

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();
    })
  })

我的问题是,如果有一个更有效的解决方案,因为我的不会扩展到大数目。

感谢。

0 个答案:

没有答案