neo4j cypher设置地图不起作用

时间:2015-11-04 18:04:32

标签: neo4j cypher

我有一个测试查询

UNWIND [['my@email.com', {auth:true}]] as key_role
WITH key_role
...
SET r += key_role[1]  // r is a relationship

然后返回

  

"类型不匹配:预期的地图,节点或关系,但是任何"

如果我RETURN key_role[1],则响应包含如下行:

{
    "auth": true
}

我做错了什么?

新2.3.0

1 个答案:

答案 0 :(得分:2)

因为您有一个混合类型数组,所以它被视为Any个对象的数组。而且Cypher不知道如何在关系的属性中添加Any。如果您将数组设为一个映射数组,那么Cypher会将每个元素视为一个映射。

例如,这有效:

UNWIND [[{email: 'my@email.com'}, {auth:true}]] as key_role
WITH key_role
...
SET r += key_role[1]  // r is a relationship

您可以修改查询以使用地图数组而不是混合类型数组吗?