在Cypher / Neo4J中匹配多个节点属性值

5
使用Cypher 2,我希望查找所有标记为“Context”的节点,这些节点被称为“health”或“opinion”。
有效的查询语句为:
MATCH (c:Context) WHERE c.name="health" OR c.name="opinion" RETURN c;

但是我想知道Cypher是否有一种语法,可以将它放在第一个MATCH部分,就像这样:
MATCH (c:Context{name:"health"|name:"opinion})

上面的例子无法工作,但我只是展示它让你知道我的意思。
谢谢!

1
使用起作用的那个,没有简写语法可用。 - Michael Hunger
你正在尝试解决特定的问题吗? - jjaderberg
@jjaderberg 嗯,是的,那就是问题所在 :) 我已经解决了,只是想知道是否有更有效率的方法。 - Aerodynamika
你有没有找到这个问题的答案,@deemeetree? - Henri Cook
2个回答

13

或者,您可以这样做:

MATCH (c:Context) WHERE c.name IN ['health', 'opinion'] RETURN c

虽然还没有到"匹配"语句,但随着可能值列表的增长,它变得更加容易了。


3
您可以执行以下操作:
MATCH (c:Context {name:"health"}), (d:Context { name:"opinion"}) 
RETURN c,d

是的,我知道这个,但我不想创建多个实例。 - Aerodynamika
3
好的,你问能否把它放到“MATCH”部分,我回答了。 - Jens Mikkelsen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接