NEO4Jインスタンスに接続するREST APIを構築しています。私は基礎としてkoa-neo4jライブラリを使用しています(https://github.com/assister-ai/koa-neo4j-starter-kit)。私はこれらすべての技術の初心者ですが、このフォーラムの助けを借りて基本的な機能が動作しています。たとえば、以下のコードでは、ラベル "metric"を持つ新しいノードを作成し、nameとdateAdded propertisを設定することができます。プロパティとノードのセットをPOST文として渡すKOA-NEO4JまたはBOLT
URL:
/metric?metricName=Test&dateAdded=2/21/2017
index.js
app.defineAPI({
method: 'POST',
route: '/api/v1/imm/metric',
cypherQueryFile: './src/api/v1/imm/metric/createMetric.cyp'
});
createMetric.cyp」
CREATE (n:metric {
name: $metricName,
dateAdded: $dateAdded
})
return ID(n) as id
しかし、私はstrugglですより複雑な例に私がどのようにアプローチできるかを知ることです。事前に新しいノードを作成するときに追加するプロパティーの数や、単一のpostステートメントで複数のノードを作成するときに、どのようなプロパティーが追加されるか分からない状況をどう処理できますか?理想的には、POSTの一部としてJSONのようなものを渡すことができるようにしたいと思います。これには、作成したいノード、ラベル、プロパティがすべて含まれています。このようなことは可能でしょうか?以下のCypherクエリを使用してPOST本体にJSON文字列を渡してみましたが、動作しませんでした。
UNWIND $props AS properties
CREATE (n:metric)
SET n = properties
RETURN n
私は、BOLTプロトコルとKOA-NEO4Jフレームワークの代わりにNeo4j Rest APIを切り替えるほうがよいでしょうか。私の研究では、BOLTを使う方が良いと思っていましたが、私はフロントエンドとバックエンドの間の中間層としてRest APIを使いたいので、長期的にはもっと簡単にやり直したいと思っています。
ありがとうございました!
ありがとうございました。私はあなたのコードを試して、次の "props = [{metricName:"テスト名 "、dateCreated:" 02/21/2017 "}]"を渡しましたが、 "ノード作成用に提供されたパラメータがマップではありません"というエラーが表示されます。明らかに、私は "マップ"を正しく構成していません - これに関するあらゆるポインタ? – n4nite
@ n4niteあなたのpropsパラメータはマップでなければならず、クエリで使用する値はマップ内のエントリであり、その値はマップのコレクションです。サイバーサムの例を使用している場合、 '$ prop_collection'パラメータを使うには、あなたの小道具は次のようになります:' props = {prop_collection:[{metricName: "テスト名"、dateCreated: "02/21/2017"}] } ' – InverseFalcon
Neo4jで地図を読み上げることができますが、これはうまくいかず、Googleを検索するとほとんど見つからないのですか?私は例を使用して、POSTステートメントの一部として "props"文字列をAPIに渡していますが、 "ノード作成のために提供されたパラメータはマップではありません"というエラーが表示されます。 – n4nite