2017-11-15 11 views
0

CypherとAPOCライブラリでNeo4jを照会するのは本当に困難です。数日前にAPOCライブラリを使用して、変数に基づくラベルを持つノードを作成することをお勧めしました。これらのノードを作成することは素晴らしいことですが、数日が経過しており、これらのノード間の関係を作成する方法はまだ分かりません。APOCを使用してノードのラベル、プロパティ、および関係が可変である2つのノード間の関係を作成する方法

エラーメッセージは、APOCを使用する前のエラーメッセージと同じです。クエリの最初の文字は常に無効な入力とみなされます。もう1つは、手続き呼び出しが必要な数の引数を提供しないということです。

私は実際に関係を作成する方法に関するAPOCのドキュメントを理解していません。私もCALL APOC.help( 'relationship')を試して、apoc.mergeを使うことも可能であることに気付きました。しかし、これは彼らのドキュメンテーションで見つけることができません。さらに、Neo4JのブログでAPOCの新しい夏のリリースについて読んだことがありますが、このクエリをどのように動作させることができるのかまだ分かりません。

考えられるすべてのクエリを試しましたが、ノードは接続できません。私は何をしているのか、何かを逃しているのかどうかはわかりません。

私は本当に2つのノードを照合し、それらの間の関係を作成したいと考えています。これらのノードのラベルとプロパティは、それが作成された方法で変更可能です。可能であれば、関係タイプも変数に基づいている可能性があります。

Neo4jドライバであるNodeJSを使って、Neo4jのプラグインフォルダにAPOC Jarファイルを挿入しています。ここで

は、私が何をしようとしているのアイデアを得るために失敗したクエリの一つだ:

('CALL apoc.create.relationship([{labelParamN1}], {name: {nameParamN1}}, {relationParam}, [{labelParamN2}], {name: {nameParamN2}})', 
{labelParamN1: labelParamN1, nameParamN1: nameParamN1, labelParamN2: labelParamN2, nameParamN2: nameParamN2, relationParam: relation}) 

このクエリを持ついくつかの助けが本当に

+0

1.エラーメッセージは何ですか?あなたのクエリを試してみたら、 'プロシージャコールは必要な数の引数を提供しません:get 5 expected 4.'エラーメッセージは必要なパラメータを詳述します:' apoc.create.relationship(from :: NODE ?, relType :: STRING?、props :: MAP?、:: NODE?) '。 2.散発的に文書化されたライブラリに遭遇した場合は、[関連するユニットテスト](https://github.com/neo4j-contrib/neo4j-apoc-procedures/blob/3.2/src/test/java/)を確認することが最良の場合がよくあります。 apoc/create/CreateTest.java#L125)、どのように使用するかの例を示します。 –

+0

関連する単体テストを私に見せてくれてありがとう。私は前にそれらを見なかった。私は将来、再び立ち往生した場合、最初に彼らを徹底的にチェックします。ありがとうございました! – Vincent

答えて

1

をいただければ幸いあなたが最初にMATCHを使用する必要があります必要なノード(n1およびn2)を取得し、apoc.create.relationshipメソッドを使用します。あなたが関係上の任意のプロパティを追加したいん(ので、あなただけの三番目のパラメータのための{}を渡す)と仮定すると、次のクエリは動作するはずです:

MATCH (n1 {name: {nameParamN1}}), (n2 {name: {nameParamN2}}) 
CALL apoc.create.relationship(n1, {relationParam}, {}, n2) 
YIELD rel 
RETURN rel 
+0

soooたくさんありがとう!できます。名前の他に、n1とn2にプロパティを追加できるかどうかを確認しました。それも素晴らしいです。私はついにやり直すことができます!私はなぜラベルを付けてノードを一致させようとしていたのか分かりませんが、それはまったく必要ではありません。お疲れ様でした! – Vincent

+0

あなたは大歓迎です!楽しいハッキングをお楽しみください! :-) –

関連する問題