2015-11-04 79 views
0

我有一个测试查询Neo4j的暗号集映射不工作

UNWIND [['[email protected]', {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

回答

2

因为你有混合类型的数组它被视为Any对象的数组。 Cypher不知道如何将Any添加到关系的属性中。如果您将阵列制作成地图阵列,那么Cypher会将每个元素视为地图。

例如,这个工程:

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

您可以修改您的查询与地图的数组,而不是混合类型的数组工作?

+0

哇,是的,我们可以!应该可以使用地图并用'map ['key']'表示法来处理它。 – bebbi

+0

目前,您不能将地图存储在neo4j属性中。 –