升级Dgraph 20.07.2至20.07.3后含Cascade的查询无法执行求助
问题解决:Dgraph 20.07.3 中@cascade查询语法错误
问题原因
Dgraph 20.07.3 对查询语法的校验更为严格,旧版本(20.07.2)允许的@cascade(hasTenant)写法不符合官方规范,新版本不再兼容该非标准写法。
修复后的查询语句
将@cascade(hasTenant)改为标准的@cascade,同时移除冗余的字段声明,调整后的查询如下:
query get_tenantlevel_data($tenantuid:string){ get_tenantlevel_data(func: type(cpc.mst.tenantlevels)) @filter(eq(active,true)) @cascade { uid hasTenant @filter(uid($tenantuid)) } }
补充说明
- 原查询中重复声明
hasTenant与hasTenant@filter(...)属于冗余写法,新版本的语法校验会直接触发错误 @cascade本身会自动过滤掉指定字段为空的节点,无需在括号内指定字段名,只需确保目标字段带有正确的@filter逻辑即可
内容的提问来源于stack exchange,提问作者VINOTHSHA
相关产品推荐
相关产品推荐

