次のような単純なCypherクエリを作成する場合:
MATCH (r:Person {name:"Jon"})
MATCH (s:Person {name:"Ana"})
CREATE UNIQUE (r)-[:FRIEND_OF]->(s)
Neo4jブラウザでアラートメッセージを受信しています。アラートメッセージには次のように表示されます。
RULEプランナーは、現在のCYPHERバージョンでは使用できません。 クエリは古いCYPHERバージョンで実行されました。 CREATE UNIQUEは 現在のCYPHERバージョンではサポートされていません。クエリは 古いCYPHERバージョン
警告メッセージの印刷画面は次のとおりです。
Neo4j Githubでこのメッセージを検索しましたが、何も見つかりませんでした。また、ドキュメントには減価償却に関する言及はありません。
私の質問は: CREATE UNIQUEは非推奨ですか?どうして?
Neo4j 3.2.1を使用しています。
ありがとう。
PS: 私はクエリがリファクタリングできることを知っています。これは単なる例です。また、クエリを使用して行われたすべてのリファクタリング CREATE UNINQUE
Neo4jブラウザに同じアラートメッセージを表示します。
回答:
回答№1は2CREATE UNIQUEは、MERGEによって完全に置き換えられるように設定されています。したがって、構文は次のようになります。
MATCH (r:Person {name:"Jon"})
MATCH (s:Person {name:"Ana"})
MERGE (r)-[:FRIEND_OF]->(s)
よろしく、 トム
回答№2の場合は0
これを試して
MATCH (lft:Person {name:"Jon"}),(rgt)
WHERE rgt.name IN ["Ana"]
CREATE UNIQUE (lft)-[r:KNOWS]->(rgt)
RETURN r
このように複数の名前も検索できることに注意してください
MATCH (lft:Person {name:"Jon"}),(rgt)
WHERE rgt.name IN ["Ana","Maria"]
CREATE UNIQUE (lft)-[r:KNOWS]->(rgt)
RETURN r