0

我有一个包含 2 类关系的 neo4j 数据库:CONTAINS 和 REFERENCES,它由关系本身的“RelationshipType”属性确定。我正在尝试查找节点(根据定义,该节点将具有从其父级传入的 CONTAINS 关系),但没有 REFERENCES 关系。

我的查询如下。

START source=node(828)
MATCH source-[contains]->target<-[references?]-reference
WHERE contains.RelationshipType='CONTAINS'
AND references.RelationshipType='REFERENCES'
AND reference = null
RETURN target.Id
4

1 回答 1

0

没有任何东西既是 NULL 又具有属性“RelationshipType”,这就是结果为空的原因。

您可以简单地指定关系“引用”为空,如下所示,

START source=node(828)
MATCH source-[contains]->target<-[references?]-reference
WHERE contains.RelationshipType='CONTAINS' AND reference = null
RETURN target.Id

在“目标”可能具有“REFERENCES”以外的传入关系的情况下,您可以指定“目标”的任何传入关系都不应该是属性类型“REFERENCE”,

START source=node(828)
MATCH source-[contains]->target, path=target<-[references?]-reference
WHERE contains.RelationshipType='CONTAINS' AND NONE ( r in relationships(path) where r.RelationshipType='REFERENCES')
RETURN target.Id
于 2013-09-15T14:52:37.193 回答