Je souhaite créer un nœud/une relation uniquement si un nœud/une relation avec le même attribut s n'existe pas dans le graphique. Si c'est le cas, je voudrais aller chercher l'objet concerné. En ce moment, je fais quelque chose que je suppose est à la fois unidiomatic et inefficace. En supposant que chaque noeud Person
a une unique paire (name
, age
), je fais quelque chose comme ceci:Comment puis-je effectuer une opération de "correspondance ou création" dans py2neo v3?
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)
Pour ma compréhension find_one()
ne fonctionne que si vous avez juste une propriété à rechercher et match_one()
permet pas de propriétés pour les relations .