如何在 neo4j 中使用 cypher 查询集合?

How to query collection using cypher in neo4j?

我在 neo4j 中有一个节点,其结构如下所示:

{
            "nodeId": 32,
            "id": "0290cf88-3345-4c30-8e5f-7ce0cb3f0b6b",
            "type": "User",
            "name": "Mahendra",
            "index": 0,
            "data": "This is sample user",
            "description": null,
            "contentBlocks": [],
            "icon": null,
            "createdOn": null,
            "modifiedOn": null,
            "properties": {
                "displayName": "Mahendra",
                "lastName": "Kawde"
            },
            "tags": [
                "tag1",
                "tag2"
            ],
            "categories": null
        }

现在我想通过将标签作为参数传递给我的密码查询来获取所有节点。 我正在使用以下查询:

MATCH (node) WHERE node.tags = ['tag1','tag2'] RETURN node

这 return 是我所有具有给定标签的节点。 但是如果我使用下面的查询

MATCH (node) WHERE node.tags = ['tag1'] RETURN node

它没有 return 我的任何节点。

此外,如果我更改顺序,可以说 ['tag2','tag1'] 它不会 return 给我任何节点。

下面是我的控制器方法:

@RequestMapping(value = "/getByTag",method = RequestMethod.GET, consumes=MediaType.APPLICATION_JSON, produces=MediaType.APPLICATION_JSON)    
    public Result<Node> getByTag(@RequestParam(value="tags") List<String> tags) throws EntityNotFoundException {
        return nodeService.getByTag(tags);
    }

服务方式:

public Result<Node> getByTag(List<String> tags) {

        HashMap params = new HashMap();
        params.put("type",tags);

        String query = "MATCH (node) WHERE node.tags = "+ tags +" RETURN node";

        Result<Node> nodes = neo4jTemplate.query(query, params).to(Node.class);
        return nodes;   
    }

你能给我一个使用集合的方法吗,更准确地说 List<String> 在密码查询中?

请帮忙

怎么样

MATCH (node) 
WHERE ALL (x IN ['tag1','tag2'] WHERE x in node.tags)
RETURN node

http://neo4j.com/docs/2.2.2/query-predicates.html