ノードとリレーションシップが 2 つしかない初歩的なデータベースがあります。match (n) return n
neo4j で提供されているローカル Web クライアントでコマンドを実行すると、下の図に示すように、データベースにあるすべてのノードと関係が返されます。
ただし、 neo4j-driverモジュールを使用して node.js プロジェクトでまったく同じコマンドを実行すると、3 つのノードのみが返され、2 つの関係は含まれません。
少しいじった後、関係も取得するには、次のようなものを発行する必要があることに気付きましたmatch (n)-[r]-(m) return *
。私の最初の質問は、なぜこのような違いがあるのですか? ローカル Web クライアントは、ユーザーを支援するためにもう少し何かをしようとしているだけですか?
さらに、返されたレコード オブジェクトが少しわかりにくいと思います。このmatch (n)-[r]-(m) return *
コマンドを実行すると、result.records オブジェクトに 4 つの項目が返されます。そのうちの 2 ~ 2 項目はペアでほぼ同一です。単純化されたビューでは、これが返すものです:
item 0: [Jack node, Jill node, Jack -> Jill relationship]
item 1: [Jill node, Jack node, Jack -> Jill relationship]
item 2: [George node, Jill node, George -> Jill relationship]
item 3: [Jill node, George node, George -> Jill relationship]
したがって、result.records オブジェクトの項目 0 と 1 は、要素の順序のみが異なります。項目 2 と 3 についても同様です。
質問 2 は、Web ページにグラフを表示したい場合、これをどうすればよいですか? 返されたすべての異なる組み合わせで、ノードと関係の一意の ID を探しますか?
質問 3: 私がやろうとしていることを達成するためのより良い方法はありますか?