クエリを個別に実行すると、クエリの間に変数名(sally
、john
)は実行されません。
CREATE (node1)-[:FRIEND_OF { since: 1357718400 }]->(node2)
、あるいはすべての変数名省略:
をあなたの第三クエリが変数を使用せずに解釈されることを意味
sally
、何にバインド
john
どちら:あなたが書いたのであれば
CREATE (sally)-[:FRIEND_OF { since: 1357718400 }]->(john)
、あなたは同じことを達成します
CREATE()-[:FRIEND_OF { since: 1357718400 }]->()
あなたは、この複数の方法を修正することができます。
1:1つのクエリを使用して、その行が個別に実行されていないことを確認します。
CREATE
(sally:Person { name: 'Sally', age: 32 }),
(john:Person { name: 'John', age: 27 }),
(sally)-[:FRIEND_OF { since: 1357718400 }]->(john)
2:以前に挿入されたノードを見つけるためにMATCH
を使用してください。もちろん、後者のアプローチでは、名前は一意の識別子であると仮定しているが、これは一般的には真ではない。この問題を回避するには、次のことができます。
リターン(などの社会保障番号、)ID()
機能とデータベースの外部からMATCH (sally), (john) WHERE ID(sally) = ..., ID(john) = ...
または
使用いくつかの他の識別子を使用してを使用してノード識別子。