我有一个EUser模型,它具有与userRole的belongsTo关系。我想检索所有具有userRole.codeName == "Admin"的EUser

我在文档中找不到类似这样的示例...

到目前为止,我已经尝试过:

server.models.EUser.find({
    include: {
        relation: 'userRole',
        where: {
            codeName: 'Admin'
        }
    }
}, function(err, users){
    console.log(users);
});


但是,这似乎没有达到正确的结果。

我已经验证了我的关系定义正确,因为在基本情况下可以正确使用“包含”过滤器。

最佳答案

您无法通过EUser.find根据相关模型的属性过滤得到EUsers。
Include过滤器仅将相关模型添加到返回的实例中。

尝试将userRole hasMany EUser关系添加为“ EUsers”并找到“ Admin” userRole,包括相关的EUser对象:

// assuming that userRole hasMany EUser as EUsers
userRole.find({
    where: { codeName: 'Admin' },
    include: 'EUsers'
})

07-24 15:26