在关系内部的全局范围内过滤 'where'

Filter 'where' on global scope inside relations

正在从 lb2 迁移到 lb4,跳过 lb3 ...

一堆警告。 有这个过滤器里面有很多关系:

{
    "limit": 10,
    "skip": 0,
    "where": {},
    "include": [{
        "relation": "userRoles",
        "scope": {
            "include": [{
                "relation": "role"
            }]
        }
    }, {
        "relation": "userCounteragents"
    }, {
        "relation": "userByUserCategories",
        "scope": {
            "include": [{
                "relation": "userCategory"
            }]
        }
    }]
}

是否可以在整个全局搜索中按 "relation": "role"role.name == "admin" 进行过滤?不只是在 "relation": "role"

中过滤

类似于{"limit": 10, "skip": 0, "where": {"userRoles.role.name": "admin"} ...

很遗憾,LB4 不支持内部联接 (https://github.com/strongloop/loopback-next/issues/4299)。

对于 NoSQL,我能想到的唯一解决方法是将关系切换为“embedsMany”。否则,您可以使用 roles 创建一个更简单的设计:string[] 属性.