3

我是neo4j的新手,所以我的问题对你来说可能听起来很愚蠢,但无论如何。

我将 OSM 数据集导入到 neo4j 图形数据库中。所以目前我正在尝试从数据库中查询不同的东西,比如:

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"
                       ^

这很奇怪,因为节点有很多带有冒号(:) 的属性。

有谁知道我如何查询这些属性?

4

2 回答 2

2

欢迎来到 Neo4j!像:或空格这样的字符可能会在查询中引入歧义,因为它们在查询语言中可能很重要,这会给解析器带来麻烦。您仍然可以通过将表达式括在“反引号”中来使用这些字符,即

MATCH (a) WHERE has(a.`addr:street`) RETURN a.`addr:street`

您可以在此处查看其他示例。

于 2013-11-18T14:16:30.240 回答
0

密码查询包含三个部分:

开始、匹配和返回。所以你在这里的查询将是::

START a=node(1)
MATCH (a)-[:HAS]->(addr)-[:HAS]->(street)
RETURN street
于 2013-11-18T13:45:00.857 回答