我正在使用py2neo 3.1.2版本和Neo4j 3.2.0,我有一个问题。在Neo4J的Web界面上,我可以运行以下查询来获取节点ID:
<form method="POST" action="/dynamic">
{{ form.csrf_token }}
{% for team in form.team %}
{{ team.csrf_token }}
{% for player in team.player %}
{{ render_field(player) }}
{% endfor %}
{% endfor %}
</form>
我想知道py2neo API是否有同样的功能。我已经检查了
MATCH (n:Person) RETURN ID(n)
对象,但我找不到任何相关内容。
答案 0 :(得分:4)
我在Twitter(py2neo&#39; s创建者)与@technige进行了交谈,他的回答是。
好吧,对啊。它有点间接,但你可以这样做:
from py2neo import remote
remote(node)._id
答案 1 :(得分:2)
py2neo
,但此答案有效当前版本的py2neo
(4.0.0b12)删除了remote
方法。现在,您可以通过访问NODE ID
属性来获取py2neo.data.Node.identity
。这很简单。我们假设我使用neo4j
查询我的py2neo
数据库,如下所示:
#########################
# Standard Library Imports
#########################
import getpass
#########################
# Third party imports
#########################
import py2neo
# connect to the graph
graph = py2neo.Graph(password=getpass.getpass())
# enter your cypher query to return your node
a = graph.evaluate("MATCH (n:Person) RETURN n LIMIT 1")
# access the identity attribute of the b object to get NODE ID
node_id = a.identity
我们可以通过使用属性返回的节点id查询我们的数据库来确认NODE ID。如果它正常工作,a
和b
应该是同一个节点。我们来做一个测试:
# run a query but use previous identity attribute
b = graph.evaluate("MATCH (n) WHERE ID(n)={} RETURN n".format(node_id))
# test for equality; if we are right, this evaluates to True
print(a == b)
[Out]: True