私は最近 Neo4j を使い始めましたが、仕組みを理解するのに苦労しています。以前にスクリプトで作成したノード間の関係を作成しようとしています。私が見つけたサイファー クエリは動作するように見えますが、ID を取得して # を置き換える方法がわかりません
START a= node(#), b= node(#)
CREATE UNIQUE a-[r:POSTED]->b
RETURN r
プレーンサイファーを使用したい場合は、ドキュメントに多くの使用例があります。
ノードを作成すると、次のようにノードを返すことができます (または return でID のみid(a)
)。
CREATE (a {name:'john doe'}) RETURN a
このようにして、関係を追加するために ID を保持できます。
後でリレーションシップをアタッチする場合は、ノードの内部 ID を使用して外部システムからノードを参照しないでください。たとえば、ノードを削除して作成すると再利用できます。
すべてをスキャンしてフィルタリングすることでノードを検索するか、データベースにインデックスWHERE
を追加することができます。
START n = node:node_auto_index(name='john doe')
そこから続けます。Neo4j 2.0 はインデックス ルックアップを透過的にサポートするため、MATCH と WHERE が効率的になるはずです。
Python を使用している場合は、 cypherと REST インターフェイスを使用してサーバーと通信しながら、より Pythonic なインターフェイスを提供するpy2neoを参照することもできます。
これを理解しようと何時間も試みた後、私はついに探していたものを見つけました。ノードが返される方法に苦労していたところ、
userId=person[0][0][0].id
私が欲しかったものを返すでしょう。でも、助けてくれてありがとう!
クライアント側で Javascript を使用して、暗号クエリを投稿します。
start n = node(*) WHERE n.name = '" + a.name + "' return n
次に、応答 "self" からの ID 番号を次の形式で解析します。
server_url:7474/db/data/node/node_id