我正在尝试获取用户拥有的链接数量,使用下面显示的查询和neo4j-driver for python。
with driver.session() as session:
query = 'MATCH (n:User {userId: "1234"})-[r]-() RETURN COUNT(r)'
result = session.run(query)
问题是,由于我有很多用户ID,这需要花费很多时间。我是Neo4j的noobie。我只是想知道是否有办法通过单个查询检索多个用户ID的计数。我正在寻找类似的东西:
'MATCH (n:User {userId: "1234", "1235", "1236", ...})-\
[r1, r2, r3...]-() RETURN COUNT(r1), COUNT(r2), COUNT(r3)...'
提前致谢。
答案 0 :(得分:0)
我假设你想要所有用户的关系船计数
MATCH (n:User)-[r]-() RETURN DISTINCT n.userId ,COUNT(r)
或者如果您有特定用户的列表,那么您可以通过此
完成MATCH (n:User)-[r]-()
WHERE n.userId in ["1234", "1235", "1236"]
RETURN DISTINCT n.userId , COUNT(r)
答案 1 :(得分:0)
您可以从节点获得关系程度,而无需支付实际扩展关系的成本。这是通过获取仅包含起始节点,关系类型和关系方向的模式的大小来完成的(尽管对于此示例,忽略方向)。
所以在这种情况下:
MATCH (n:User)
WHERE n.userId in ["1234", "1235", "1236"]
RETURN n.userId , size((n)-[r]-()) as degree