2017-02-20 5 views
0

MERGE句に関する質問があります。無関係の関係を持つMERGE句

マニュアル(link)によれば、 "MERGEは無向の関係で使用することもできます。新しいものを作成する必要がある場合、方向を選択します。"

クエリ

MATCH (charlie:Person { name: 'Charlie Sheen' }),(oliver:Person { name: 'Oliver Stone' }) 
MERGE (charlie)-[r:KNOWS]-(oliver) 
RETURN r 

結果

+-------------+ 
| r   | 
+-------------+ 
| :KNOWS[8]{} | 
+-------------+ 
1 row 
Relationships created: 1 

Q1)どのように方向が決定されますか?

Q2)なぜ2つの関係(着信と発信)を作成しないのですか?

ありがとうございました。

+0

ここでは2つの別々の質問をしています。あなたの質問は共通のテーマを共有していますが、StackOverflowの標準はあなたが求めている質問ごとに一意の質問投稿を作成することです。 – melchoir55

答えて

0

マニュアルに記載されていないので、私はそれが重要であるかどうかはわかりません。あなたやデータモデルに関係ない場合は、無向リレーションシップをマージするだけでなく、無関係リレーションシップのクエリも同様にマージする必要があります。重要な場合は、指示された関係を使用します。

Neo4jは、単一の関係をペナルティなしに前後に移動できます。通常、2つの関係を持つ理由はありません。ある方向の関係がその関係を往復することを暗示していない場合など、いくつかのケースがあります。たとえば、ソーシャルネットワークでの関係:FOLLOWING。ある人が別の人に従うことができますが、それは他の人が後退していることを意味するものではありません。