Neo4j where在多个属性上进行谓词



在Neo4j中,对于where谓词,我们可以对多个属性进行约束吗?例如,假设我们有一个配对列表:L = [(23, 'San Diego'), (25, 'Palo Alto'), (21, 'Seattle'), ....],那么Cypher是否支持类似以下内容:

Match (a) where (a.age, a.city) in L return a

年龄和城市组合需要在L列表

Neo4j不接受元组,只接受键、值对(或字典)的映射。

然而,这个查询将接近你所描述的。

WITH [{age:23, city:'San Diego'}, {age:25, city:'Palo Alto'}, {age:21, city:'Seattle'}] as L
MATCH (p:Person) WHERE {age: p.age, city: p.city} in L
RETURN p 
Sample result:
╒═══════════════════════════════════════════╕
│"p"                                        │
╞═══════════════════════════════════════════╡
│{"name":"Andy","city":"San Diego","age":23}│
└───────────────────────────────────────────┘

见下文:

https://neo4j.com/docs/cypher-manual/current/syntax/values/#composite-types

最新更新