【发布时间】:2015-11-05 16:06:52
【问题描述】:
我正在 Neo4j 上学习 Cypher,但我无法理解如何在 Cypher 中执行有效的“加入”等效操作。
我正在使用标准的矩阵字符示例,并且我已将一些节点添加到名为“Gun”的混合中,其关系为“:GIVEN_TO”。您可以在此处查看带有我的查询结果的控制台:
http://console.neo4j.org/r/rog2hv
我使用的查询是:
MATCH (Neo:Crew { name: 'Neo' })-[:KNOWS*..]->(other:Crew),(other)<-[:GIVEN_TO]-(g:Gun),(Neo)<-[:GIVEN_TO]-(g2:Gun)
RETURN count(g2);
我给了 Neo 4 支枪,但是当我执行上述操作时,我得到的计数是“12”。这似乎是因为有 3 个“其他”和 3*4 = 12。所以我得到了一些指数结果。
我的查询应该是什么样子才能从示例中获得正确的计数 ('4')?
编辑:
我没有按照@ceej 的建议直接通过 Guns 进行查询的原因是,在我的实际用例中,我必须如上所述进行遍历。添加DISTINCT 对我的结果没有任何作用。
【问题讨论】:
标签: database graph neo4j cypher