我有以下密码查询:
MATCH (t:thing{id:'c4474c0c3bb2f46d21156c456a1b9403'})-[:`REWARDED`]->(r)
OPTIONAL MATCH (u)-[:`SUPPORTS`]->(e)
RETURN t,r,u
这看起来与我不想得到的一样(http://note.io/Mgxabp),但我只需要奖励节点(r)和每个奖励的用户数(u)。
我尝试了很多查询,但大多数情况下我获得了2个奖励节点,两个用户都计算在内。
更新: 我在Neo4J控制台中添加了一个示例:http://console.neo4j.org/?id=ojfa0i
答案 0 :(得分:0)
要获得每个奖励的人数/支持者数量,您可以使用:
MATCH (t)-[:REWARD | BACKED]->(r)
RETURN r, count(t)
如果您只想知道有多少人获得了奖励,那么您可以使用:
MATCH (t)-[:REWARD | BACKED]->(r)
WHERE t.entity="person"
RETURN DISTINCT r, count(t)
您可以使用WHERE t.id="..."
我在neo4j console中重新创建了您的图表,您可以在这里尝试我在这里的查询。
答案 1 :(得分:0)
参考您的图表here
尝试此查询:
MATCH (t { entity: "thing" })-[:HAS_REWARD]->(r)
OPTIONAL MATCH r<-[BACKED]-(u)-[:SUPPORTS]->(t)
RETURN r AS reward,count(u) AS users,collect(u) AS usernodes