我是neo4j的新手,所以我的问题对你来说可能听起来很愚蠢但无论如何。
我将OSM数据集导入neo4j graph db。所以当前我试图从db查询不同的东西,比如:
MATCH (a) WHERE has(a.addr:street) RETURN a.addr:street
并且因sysntax错误而失败:
Type mismatch: expected Node but was Boolean, Number, String or Collection<Any> (line 1, column 23)
"MATCH (a) WHERE has(a.addr:street) RETURN a.addr:street"
^
这很奇怪,因为节点有很多冒号(:)的属性。
有谁知道如何查询这些属性?
答案 0 :(得分:2)
欢迎来到Neo4j!像:
或空格这样的字符可能会在查询中引入歧义,因为它们在查询语言中可能很重要,这会使解析器出现问题。您仍然可以通过将表达式括在“反引号”中来使用这些字符,即
MATCH (a) WHERE has(a.`addr:street`) RETURN a.`addr:street`
您可以看到其他一些示例here。
答案 1 :(得分:0)
cypher查询有三个部分:
开始,匹配和返回。 所以你的查询将是::
START a=node(1)
MATCH (a)-[:HAS]->(addr)-[:HAS]->(street)
RETURN street