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中无效的属性密钥标识符吗?如何解决这个问题?
答案 0 :(得分:3)
您可以使用反引号(`)字符来引用以非法字符开头的属性名称。
例如,这可行:
CREATE (o:Attributes {`4g`: 'network'})
RETURN o;
这也有效:
MATCH (o:Attributes) WHERE o.`4g` = 'network'
RETURN o;
答案 1 :(得分:2)
根据文档的naming rules section,您使用的名称(包括属性键):
必须以字母开头。
和
可以包含数字,但不能包含第一个字符。
然而,您可以使用下划线开始,因此_4g:'network'
可以正常工作。
我猜这只是为了举例,但在我看来反过来会更好:network:'4g'
。