Neo4j查询包含两个特定成分名称的节点

时间:2017-10-25 19:15:50

标签: neo4j cypher

我对neo4j查询有疑问,这是我的查询:

MATCH (o:Pizza)-[r:CONTAINS]->(p:Ingredient{name:"salami"}) RETURN o 

我的查询有效,它会返回带有提供成分的披萨,但如果它包含火腿我将如何添加,我正在尝试这样的事情。

MATCH (o:Pizza)-[r:CONTAINS]->(p:Ingredient{name:"salami"}) and (p:Ingredient{name:"ham"}) RETURN o 

1 个答案:

答案 0 :(得分:2)

此查询应该有效:

MATCH

使用逗号,您可以MATCH (o:Pizza)-[r:CONTAINS]->(p:Ingredient) WITH o, collect(p.name) as ingredients WHERE ALL (ingredient IN ['salami', 'ham', 'another ingredient'] WHERE ingredient IN ingredients) RETURN o 多个传入/传出关系到同一节点。

或者,如果您有动态的成分列表,则可以使用ALL功能:

{{1}}