2015-11-04 105 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屬性中。 –