我有一个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
答案 0 :(得分:0)
没有任何内容都是NULL并且具有属性“RelationshipType”,这就是结果为空的原因。
您只需指定关系“references”为null,如下所示,
START source=node(828)
MATCH source-[contains]->target<-[references?]-reference
WHERE contains.RelationshipType='CONTAINS' AND reference = null
RETURN target.Id
如果“目标”可能具有“REFERENCES”以外的传入关系,则可以指定“target”的任何传入关系都不应属于“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