2015-11-04 2 views
0

У меня есть тестовый запросNeo4j высчитывать набор карта не работает

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

и возвращает

"Тип рассогласования: ожидается Карта, узел или отношения, но был какой"

Если I 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

wow- да мы можем! Должна быть возможность использовать карту и адресовать ее с помощью символа map ['key'] '. – bebbi

+0

Также вы не можете хранить карты в свойствах neo4j. –