NebulaGraph 3.1.2中MATCH语句查询属性失败,返回节点正常问题排查
问题分析与解决
你遇到的问题核心是m对应的节点可能并非都是Person类型,或者部分节点缺失locationIP属性。
排查与解决步骤
先确认关联节点
m的类型:
执行以下语句查看m的所有节点类型:MATCH (n:Person{lastName:"Brown"})-[e:LIKES_COMMENT]-(m) RETURN DISTINCT labels(m)如果结果里包含
Comment或其他非Person类型,说明LIKES_COMMENT边连接了Person和其他类型节点——这类节点本身没有locationIP属性,直接取值自然拿不到结果。过滤节点类型后重新查询:
若只需要关联的Person节点的locationIP,修改语句为:MATCH (n:Person{lastName:"Brown"})-[e:LIKES_COMMENT]-(m:Person) RETURN m.locationIP检查节点属性完整性:
如果m都是Person类型但仍无结果,执行以下语句确认是否存在缺少locationIP的节点:MATCH (m:Person) WHERE EXISTS((n:Person{lastName:"Brown"})-[e:LIKES_COMMENT]-(m)) RETURN m.locationIP IS NOT NULL AS has_ip, count(m)
补充说明
NebulaGraph中返回整个节点m时,会显示该节点所有已存在的属性;但直接指定属性时,只有节点拥有该属性才会返回对应值,无属性的节点会返回NULL,最终导致结果不符合预期。
内容的提问来源于stack exchange,提问作者randomv
相关产品推荐
相关产品推荐

