Neo4j/Cypher:如何排除/包括具有多个属性的节点?
我有一个具有多个属性的节点集合,例如:Neo4j/Cypher:如何排除/包括具有多个属性的节点?,neo4j,cypher,Neo4j,Cypher,我有一个具有多个属性的节点集合,例如: (:项{id:1,类型:10}) (:项目{id:2,类型:10}) (:项{id:1,类型:11}) (:项{id:1,类型:13}) (:项目{id:2,类型:11}) 在其他示例中,我可以使用如下查询(使用In子句),使用单个值包含节点: 我正在尝试包含/排除具有某些属性的节点,类似于下一个查询: MATCH (x:Item) WHERE x IN [({id: 1, type: 10}), ({id: 2, type: 11})] RETU
- (:项{id:1,类型:10})
- (:项目{id:2,类型:10})
- (:项{id:1,类型:11})
- (:项{id:1,类型:13})
- (:项目{id:2,类型:11})
MATCH (x:Item)
WHERE x IN [({id: 1, type: 10}), ({id: 2, type: 11})]
RETURN x
通过上面的查询,我没有得到错误,但也没有得到任何结果。是否可能包括或排除某些节点?在上面的示例中,对2个节点进行2-match可能更容易,但在实际问题中,我希望动态地包括/排除10个以上的节点。
x
在您的示例中,不仅仅是一个带有类型和id
的映射,它是一个表示完整节点的标识符
如果将x
重写为x.id
和x.type
的映射,则可以进行比较
MATCH (x:Item)
WHERE {id: x.id, type: x.type} IN [({id: 1, type: 10}), ({id: 2, type: 11})]
RETURN x
MATCH (x:Item)
WHERE {id: x.id, type: x.type} IN [({id: 1, type: 10}), ({id: 2, type: 11})]
RETURN x