簡體   English   中英

如何在py2neo v3中執行“匹配或創建”操作?

[英]How can I perform a “match or create” operation in py2neo v3?

我只想在圖中不存在具有相同屬性s的節點/關系時創建一個節點/關系。 如果他們願意,我想提取有關的物品。

現在,我正在做的事情我認為既單一又無效。 假設每個Person節點都有一個唯一的對( nameage ),我將執行以下操作:

try:
    node = graph.data('MATCH (n:Person) WHERE n.name = {name} AND'
                      'n.age = {age} RETURN n LIMIT 1',
                      name=my_name, age=my_age)[0]['n']
except IndexError:
    node = Node('Person', name=my_name, age=my_age)

據我了解find_one()只適用,如果你有一個屬性搜索,並match_one()允許的關系沒有屬性。

您可以使用Cypher MERGE子句執行“匹配或創建”:

node = graph.data('MERGE (n:Person) WHERE n.name = {name} AND'
                  'n.age = {age} RETURN n LIMIT 1',
                  name=my_name, age=my_age)[0]['n']

py2neo確實具有mergemerge_one函數,但是它們僅具有單個屬性,因此使用Cypher將是更通用的方法。

暫無
暫無

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

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