簡體   English   中英

如何從py2neo獲取自動節點ID?

[英]How to get automatic node ID from py2neo?

我正在將py2neo 3.1.2版本與Neo4j 3.2.0結合使用,對此有疑問。 在Neo4J的Web界面上,我可以運行以下查詢以獲取節點ID:

MATCH (n:Person) RETURN ID(n)

我想知道py2neo API是否有做同樣的事情。 我已經檢查了Node對象,但找不到任何相關信息。

我在Twitter(py2neo的創建者)上與@technige進行了交談,他的回答是。

對啊 這有點間接,但是您可以執行以下操作:

from py2neo import remote remote(node)._id

更新:以前的答案不適用於新的py2neo但此答案有效

當前版本的py2neo (4.0.0b12)刪除了remote方法。 現在,您可以通過訪問py2neo.data.Node.identity屬性獲取NODE ID 這很簡單。 假設我使用py2neo這樣查詢我的neo4j數據庫:

#########################
# 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。 如果工作正常,則ab應該是同一節點。 讓我們做一個測試:

# 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM