2013-05-27 101 views
1

如何在类似的东西中指定参数 - WHERE a.name IN ["Peter", "Tobias"]。我试图将IN运算符之后的集合作为Cypher中的参数传递。我通过REST API使用Cypher。参数化集合:IN运算符WHERE子句Cypher REST

这是我的例子:

curl -X POST http://localhost:7474/db/data/ext/CypherPlugin/graphdb/execute_query -H "Content-Type: applicatio/json" --data-binary '{ 
    "query": "start ca=node:ca({search_ca_query}) MATCH ca_club-[:has]-ca WHERE (ca_club.CA_CLUB IN {CA_CLUB}) RETURN distinct ca.NUM_OFC_CA, ca.NME_CA, ca_club.CA_CLUB", 
    "params": { 
     "search_ca_query": "NUM_OFC_CA:(\"000333\", \"111033\", \"222197\")", 
     "CA_CLUB": "[\"Driad\", \"No-Club\"]" 
    } 
}' 

我也试着在查询交换方括号,但即使这样也没有工作。 (即我没有得到任何错误,但得到一个空列表 -​​

如何做到这一点的任何建议

回答

3

in参数必须是一个列表:?

curl -X POST http://localhost:7474/db/data/ext/CypherPlugin/graphdb/execute_query -H "Content-Type: applicatio/json" --data-binary '{ 
    "query": "start ca=node:ca({search_ca_query}) MATCH ca_club-[:has]-ca WHERE (ca_club.CA_CLUB IN {CA_CLUB}) RETURN distinct ca.NUM_OFC_CA, ca.NME_CA, ca_club.CA_CLUB", 
    "params": { 
     "search_ca_query": "NUM_OFC_CA:(\"000333\", \"111033\", \"222197\")", 
     "CA_CLUB": ["Driad", "No-Club"] 
    } 
}'