如何 return py2neo 中的节点 ID (Neo4J & Python)
How to return the node ID in py2neo (Neo4J & Python)
目前正在使用 Py2neo 访问我的 Neo4J 数据库。
我在 return 输入节点 ID 时遇到问题。我已经阅读了 Py2neo 的文档并阅读了多篇 Whosebug 帖子,但其中 none 包含对我的问题的可靠答案。我认为更多人可以使用此解决方案。
我可以使用 NodeMatcher 定位节点
from py2neo import Graph, NodeMatcher
from py2neo import Node, Relationship
graph = Graph("bolt://localhost:7687")
matcher = NodeMatcher(graph)
find_ingredient = matcher.match("Ingredient", name="Onion").first()
print(find_ingredient)
>>> (_6:Ingredient {name: 'Onion'})
如何提取节点 ID (_6)?
所需的输出将是
print(find_ingredient)
>>> 6
(_6也可以)
第二种方法:我添加了一个名为 'ing_id'
的 属性
ingredient = graph.run("MATCH (n:Ingredient {name:'Ui'}) WHERE n.name='Ui' RETURN n")
data = ingredient.data()
print(data)
>>>[{'n': Node('Ingredient', ing_id=1, name='Ui')}]
所需的输出将是
print(ing_id)
>>> 1
我需要添加什么代码来实现这个?
或者是否有其他方法(或更好的方法)可以轻松 return 节点 ID?
非常感谢帮助
这解决了问题。我希望这对将来的人有所帮助。
#retreive the ingredient_id of the last added ingredient in the Neo4j db
def last_ingredient_id():
ingredient = graph.run("MATCH (a:Ingredient) RETURN a.ing_id ORDER BY a.ing_id DESC").to_series()
result = int(ingredient[0])
return result
目前正在使用 Py2neo 访问我的 Neo4J 数据库。
我在 return 输入节点 ID 时遇到问题。我已经阅读了 Py2neo 的文档并阅读了多篇 Whosebug 帖子,但其中 none 包含对我的问题的可靠答案。我认为更多人可以使用此解决方案。
我可以使用 NodeMatcher 定位节点
from py2neo import Graph, NodeMatcher
from py2neo import Node, Relationship
graph = Graph("bolt://localhost:7687")
matcher = NodeMatcher(graph)
find_ingredient = matcher.match("Ingredient", name="Onion").first()
print(find_ingredient)
>>> (_6:Ingredient {name: 'Onion'})
如何提取节点 ID (_6)?
所需的输出将是
print(find_ingredient)
>>> 6
(_6也可以)
第二种方法:我添加了一个名为 'ing_id'
的 属性ingredient = graph.run("MATCH (n:Ingredient {name:'Ui'}) WHERE n.name='Ui' RETURN n")
data = ingredient.data()
print(data)
>>>[{'n': Node('Ingredient', ing_id=1, name='Ui')}]
所需的输出将是
print(ing_id)
>>> 1
我需要添加什么代码来实现这个? 或者是否有其他方法(或更好的方法)可以轻松 return 节点 ID?
非常感谢帮助
这解决了问题。我希望这对将来的人有所帮助。
#retreive the ingredient_id of the last added ingredient in the Neo4j db
def last_ingredient_id():
ingredient = graph.run("MATCH (a:Ingredient) RETURN a.ing_id ORDER BY a.ing_id DESC").to_series()
result = int(ingredient[0])
return result