gpt4 book ai didi

python - py2neo (1.6) 如何在没有 CypherQuery 的情况下逐个节点属性获取现有节点

转载 作者:行者123 更新时间:2023-11-30 23:10:54 26 4
gpt4 key购买 nike

我正在使用 py2neo(版本 1.6)。我想通过图中的属性获取现有节点,然后使用它来创建关系。

我的解决方案:

graph = neo4j.GraphDatabaseService("http://...")

query = neo4j.CypherQuery(graph,"MATCH (n:NodeType) where n.property = 'property' return n")
r = query.execute()
if len(r.data)==0:
raise Exception("node does not exist")
node = r.data[0]['n']

newNode = batch.create(node(name="APropertyOfNewNode"))
batch.add_labels(newNode, "LableOfNewNode")
relation = rel(node, "relationshipName", newNode)
batch.create(relation)

batch.submit()
batch.clear()

是否有一种高级方法可以通过其属性获取现有节点,而无需使用 CypherQuery 和编写纯密码?

最佳答案

您可以使用GraphDatabaseService.find :

from py2neo import neo4j
graph = neo4j.GraphDatabaseService('http://localhost:7474/db/data/')

movies = graph.find('Movie', 'title', 'The Matrix')

但是 graph.find 返回一个生成器对象。

movies
# <generator object find at 0x10b64acd0>

所以你只能迭代一次。

for movie in movies:
print type(movie)
print movie['tagline']

# <class 'py2neo.neo4j.Node'>
# Welcome to the Real World

关于python - py2neo (1.6) 如何在没有 CypherQuery 的情况下逐个节点属性获取现有节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30486944/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com