【发布时间】:2016-06-25 16:53:39
【问题描述】:
我对 Neo4j 比较陌生,所以如果这个问题有明显的答案,我深表歉意。我有一个数据库,其中包含用户节点、帐户节点和它们之间的 ASSIGNED_TO 关系。我有一个查询(如下)来获取用户和分配的帐户,但我也想获取在同一查询中找到的用户的计数,而不管 LIMIT/SKIP 结果如何。似乎正在发生的事情是用户计数基于 OPTIONAL MATCH 结果,而不是 MATCH 查询的结果。
我在数据库中有 3 个用户和 3 个帐户,其中 2 个用户分配给 2 个帐户,而一个用户只分配给一个帐户。
这是查询:
匹配(用户:用户) 与用户 可选匹配(用户)-[分配:ASSIGNED_TO]-(帐户:帐户) RETURN user, count(user) as userCount, collect(account) as accounts 跳过 0 限制 25这是结果:
用户 userCount 帐户 {id: 2} 1 [{id: 2}] {id: 1} 2 [{id: 2}, {id: 1}] {id: 3} 2 [{id: 1}, {id: 3}]我希望所有行的 userCount 值为 3。如果我将 'count(user)' 更改为 'count(DISTINCT user)' 我会得到 1 的 userCount。如果可能,我想避免运行 2 个单独的查询。
【问题讨论】:
标签: neo4j