0

我尝试了很多东西,但没有用。我之前已经提出过关于 stackoverflow 的问题,但我仍然面临同样的问题。这是旧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"}

为简单起见,我只添加了 1 个道具数组,否则大约有 5000 个道具。现在我想执行上面的查询,但它失败了。我尝试使用 (props.NodeId}, {props[NodeID]} 但一切都失败了。是否可以访问 neo4j 中的单个属性?

我的 prog 在 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 回答