我使用py2neo 1.6.4和neo4j 2.0.1,我發現訪問索引節點的一些奇怪之處。特別是,索引訪問的索引節點不返回與id訪問的節點相同的對象。由id訪問py2neo節點返回不同對象比索引訪問節點
例如:
>>> graph_db.get_or_create_indexed_node('index','key',1)
Node('http://localhost:7474/db/data/node/1')
>>> graph_db.get_indexed_node('index','key',1)
Node('http://localhost:7474/db/data/node/1') #get works fine after create
>>> graph_db.get_indexed_node('index','key',1).exists
True #the node exists in the db
>>> graph_db.get_indexed_node('index','key',1)._id
1 #the id for the node
>>> graph_db.node(1)
Node('http://localhost:7474/db/node/ #note that this is different than the query on the index
>>> graph_db.node(1).exists
False #node does not exist in db when accessed by id
所以當通過ID訪問實際上並不存在於數據庫中,即使ID返回返回的節點正是分配給索引節點。
我對neo4j和py2neo都很陌生,對索引的理解也沒有絕對的深刻理解,所以如果有一個答案可以幫助教育我和其他人,那將是非常棒的,如果這代表了一個錯誤將很高興知道以及:)
謝謝!
而這並不完全解決問題的行爲,但它建議不共享同樣的問題一個更好的選擇 - 在我的書的聲音正確的! – Parker