我尝试过很多东西,但没有用。 我之前已经在stackoverflow上提出了一个问题,但我仍然面临同样的问题。 这是旧stackoverflow问题的链接 creating multiple nodes with properties in json in neo4j
让我试着用一个小例子来解释 这是我想要执行的查询
{
"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中的单个属性?
我的编程是在c ++中,我使用jsoncpp和curl来解决我的问题。
答案 0 :(得分: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
)
答案 1 :(得分:1)
此查询字符串是否适合您?
"MATCH (n:Router) RETURN [p IN {props} WHERE n.NodeId = p.NodeId | n];"