是否有一种简单的方法可以使用py2neo从匹配查询中返回记录数?
records = g.db.run("MATCH (n:Project) where n.id={id} and ({user} in n.users) return n", id=project_id, user=user_name)
num_records_returned = # how do I do this?
答案 0 :(得分:2)
查询的结果返回一个python生成器/迭代器,因为它们不是集合,毕竟你不知道它的大小/长度而没有迭代它。
因此,如果只有您感兴趣的节点数,您可以根据Tomaz的说法调整您的查询。
否则你可以使用一个计数器:
result = session.run("MATCH (n:Product) RETURN n")
n = 0
for record in result:
print(record["n"]["id"])
n = n+1
print("total number of records : " + str(n))
另一种解决方案是将迭代器转换为列表,然后您将拥有len
函数:
result = session.run("MATCH (n:Product) RETURN n")
records = list(result)
print(len(records))
for record in records:
print(record["n"]["id"])
答案 1 :(得分:1)
您可以使用cypher
在return语句中执行此操作records = g.db.run("MATCH (n:Project) where n.id={id} and ({user} in n.users) return count(n)", id=project_id, user=user_name)
答案 2 :(得分:0)
要使用python驱动程序在Neo4j中获取计数节点,请使用以下命令:
result = session.run(“match(n)return count(*)”)
总计= "<td class=columns[i]><input type='text' id=fields[i]></td>"
<强>字体:强> https://neo4j.com/docs/developer-manual/current/drivers/sessions-transactions/
“4.3。会话和交易”中的第4节