使用py2neo从匹配查询中获取记录数

时间:2017-02-22 20:13:12

标签: python-3.x neo4j py2neo

是否有一种简单的方法可以使用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?

3 个答案:

答案 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节