当涉及过滤器时,Sails.js / Waterline获取关联计数

时间:2017-09-18 08:54:54

标签: javascript orm sails.js waterline

我在这里尝试做的基本上是对this question

建议的混合
User.count().where({follower: followerId})

this question

sails.models['user_phones__phone_users'].count({user_phones: userId}).exec(...)

所以换句话说,我有一种情况,我有三个模型:A,B和C.B充当A和C之间的通过关联。

如果我的路线基本上是A /:id / C?D = 1& E = 2

如何获得与A(通过B)相关联的C的结果并匹配查询字符串的过滤器(在D和E上)?

目前看起来count()只适用于一个型号,但这种情况有解决办法吗?

我知道一个想法是在一个填充(在C上)使用一个find(在A上),然后计算填充的关联,但在我的情况下,我有太多的记录,这个解决方案会破坏性能。

编辑:

过滤条件D和E适用于C.所以它们应该在SQL中被转换为C.D = 1和C.E = 2。

A和C也与代码相关联:

// Model A
{
     attributes: {
        cs: {
            collection: 'C',
            via: 'as',
            through: 'b'
        },
     }
}

// Model B
{
     attributes: {
        a: {
            model: 'A'
        }, 
        c: {
            model: 'C'
        }
    }
}


// Model C
{
     attributes: {
        as: {
            collection: 'A',
            via: 'cs',
            through: 'b'
        },
     }
}

0 个答案:

没有答案