【问题标题】:How to return the node ID in py2neo (Neo4J & Python)如何在 py2neo (Neo4J & Python) 中返回节点 ID
【发布时间】:2021-04-22 09:08:27
【问题描述】:

目前正在使用 Py2neo 访问我的 Neo4J 数据库。

我无法返回节点 ID。我已经阅读了 Py2neo 的文档并阅读了多篇 StackOverflow 帖子,但没有一篇包含对我的问题的可靠答案。我认为更多的人可以使用这个解决方案。

我可以使用 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 

我需要添加什么代码来实现这一点? 或者是否有替代(或更好的方法)可以轻松返回节点 ID?

非常感谢您的帮助

【问题讨论】:

    标签: python neo4j py2neo


    【解决方案1】:

    这解决了问题。我希望这对将来的人有所帮助。

    #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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多