Может ли идентификатор Neo4j начинаться с целого числа? - PullRequest
0 голосов
/ 25 апреля 2018
MATCH (p:Product {id:'19134046594'})-[r]-> (o:Attributes {4g:'network'}) return o

Я получил это исключение:

Exception in thread "main" java.lang.RuntimeException: org.neo4j.driver.v1.exceptions.ClientException: Invalid input ':': expected an identifier character, whitespace or '}' (line 1, column 66 (offset: 65))

Жалуется на «4g».Является ли '4g' неверным идентификатором ключа свойства в neo4j?Как обойти проблему?

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Вы можете использовать символ backtick (`) для цитирования имен свойств, которые начинаются с недопустимого символа.

Например, это будет работать:

CREATE (o:Attributes {`4g`: 'network'})
RETURN o;

И это тоже работает:

MATCH (o:Attributes) WHERE o.`4g` = 'network'
RETURN o;
0 голосов
/ 25 апреля 2018

В соответствии с разделом правил именования документации, используемые вами имена (которые включают ключи свойств):

Должны начинаться с буквенной буквы.

и

Может содержать цифры, но не в качестве первого символа.

Однако вы можете начать его с подчеркивания, поэтому _4g:'network' будетРабота.

Я предполагаю, что это только для примера, но мне кажется, что с другой стороны было бы лучше: network:'4g'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...