0

私は多くのことを試しましたが、役に立ちませんでした。以前にスタックオーバーフローに関する質問をしましたが、まだ同じ問題に直面しています。これは、古いstackoverflowの質問へのリンク で、neo4jのjsonにプロパティを持つ複数のノードを作成しています

ちょっとした例で説明してみましょう これが実行したいクエリです

{
   "params" : {
      "props" : [
         {
            "LocalAsNumber" : 0,
            "NodeDescription" : "10TiMOS-B-4.0.R2 ",
            "NodeId" : "10.227.28.95",
            "NodeName" : "BLR_WAO_SARF7"
         }
      ]
   },
   "query" : "MATCH (n:Router) where n.NodeId = {props}.NodeId  RETURN n"}

簡単にするために、props 配列を 1 つだけ追加しました。それ以外の場合は約 5000 個の props があります。上記のクエリを実行したいのですが、失敗します。(props.NodeId}, {props[NodeID]} を使用しようとしましたが、すべて失敗しました。neo4j で個々のプロパティにアクセスすることは可能ですか?

私のプログラムは c++ で、jsoncpp と curl を使用してクエリを実行しています。

4

2 に答える 2

2

{props}.nodeIdクエリで行う場合、propsパラメーターはマップである必要がありますが、配列を渡します。行う

"props" : {
        "LocalAsNumber" : 0,
        "NodeDescription" : "10TiMOS-B-4.0.R2 ",
        "NodeId" : "10.227.28.95",
        "NodeName" : "BLR_WAO_SARF7"
 }

簡単なCREATEステートメントを使用して、パラメーターのマップの配列を使用できます。

CREATE ({props})

または、配列をループして個々のマップにアクセスする場合

FOREACH (prop IN {props} | 
    MERGE (i:Interface {nodeId:prop.nodeId})
      ON CREATE SET i = prop
)
于 2014-04-07T07:15:37.287 に答える
1

このクエリ文字列は役に立ちますか?

"MATCH (n:Router) RETURN [p IN {props} WHERE n.NodeId = p.NodeId | n];"
于 2014-04-07T07:35:54.837 に答える