简体   繁体   English

参数化集合:IN运算符WHERE子句Cypher REST

[英]Parameterize collection: IN Operator WHERE clause Cypher REST

How to specify parameters in something like this - WHERE a.name IN ["Peter", "Tobias"] . 如何在这样的事件中指定参数 - WHERE a.name IN ["Peter", "Tobias"] I am trying to pass the collection after IN operator as a parameter in Cypher. 我试图在IN运算符之后传递集合作为Cypher中的参数。 I am using Cypher through REST API. 我通过REST API使用Cypher。

This is my example: 这是我的例子:

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\"]"
    }
}' 

I have also tried swapping square brackets in query, but even that didn't worked. 我也尝试在查询中交换方括号,但即使这样也没有用。 (ie i am not getting any error but getting an empty list - "data" : [ ] . (即我没有得到任何错误,但得到一个空列表 - "data" : [ ]

Any suggestions on how to do this? 有关如何做到这一点的任何建议?

Your in parameter needs to be a list: 您的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"]
    }
}' 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM