带有匹配项的NEO4J查询,其中,不';行不通

带有匹配项的NEO4J查询,其中,不';行不通,neo4j,where-clause,sql-like,Neo4j,Where Clause,Sql Like,我想做一个请求,它不起作用: 以下是代码(在NEO4J沙盒中,csv文件位于google sheets中,可公开访问): 这里是我的请求(我想要一条街道的居民姓名(adr_l1_name,变量:name)(rao_libelle_voie,变量:voie)) 以下是SQL请求(来自其他来源): 结果是有效的 在NEO4J沙盒中,我提出以下请求: MATCH (n:name) WHERE (n:voie) = 'RUE DE GLAIRE' RETURN (n:name) 没有错误消息,但没有显

我想做一个请求,它不起作用:

以下是代码(在NEO4J沙盒中,csv文件位于google sheets中,可公开访问):

这里是我的请求(我想要一条街道的居民姓名(adr_l1_name,变量:name)(rao_libelle_voie,变量:voie))

以下是SQL请求(来自其他来源):

结果是有效的

在NEO4J沙盒中,我提出以下请求:

MATCH (n:name)
WHERE (n:voie) = 'RUE DE GLAIRE'
RETURN (n:name)

没有错误消息,但没有显示结果;

更新了op实际需要的内容

// match all of the name on a particular voie
MATCH (v:voie)--(:adr)--(n:name)
WHERE (v.Name) = 'RUE DE GLAIRE'

// return voie and the collection of names
RETURN v, collect(n) as names
旧答案

这只是加载数据的方式与之后请求数据的方式不匹配。Neo4j中的标签和属性区分大小写

您使用小写标签(cp、commune、voi、addr、name)加载了所有数据,并使标识属性propercase
name

在您的查询中,您实际上查找的是标签
:name
,而不是
:voie

如果您将查询更改为如下所示

// match "voie" nodes identified by "n"
MATCH (n:voie)

// where the "Name" is "RUE DE GLAIRE" 
WHERE (n.Name) = 'RUE DE GLAIRE'

// return just the name
RETURN n.Name 
MATCH (n:voie)
WHERE (n.Name) CONTAINS 'RUE DE GLAIRE'
RETURN n.Name
为了使它更等同于您的SQL查询,您可以这样编写它

// match "voie" nodes identified by "n"
MATCH (n:voie)

// where the "Name" is "RUE DE GLAIRE" 
WHERE (n.Name) = 'RUE DE GLAIRE'

// return just the name
RETURN n.Name 
MATCH (n:voie)
WHERE (n.Name) CONTAINS 'RUE DE GLAIRE'
RETURN n.Name

更新了op的实际需求

// match all of the name on a particular voie
MATCH (v:voie)--(:adr)--(n:name)
WHERE (v.Name) = 'RUE DE GLAIRE'

// return voie and the collection of names
RETURN v, collect(n) as names
旧答案

这只是加载数据的方式与之后请求数据的方式不匹配。Neo4j中的标签和属性区分大小写

您使用小写标签(cp、commune、voi、addr、name)加载了所有数据,并使标识属性propercase
name

在您的查询中,您实际上查找的是标签
:name
,而不是
:voie

如果您将查询更改为如下所示

// match "voie" nodes identified by "n"
MATCH (n:voie)

// where the "Name" is "RUE DE GLAIRE" 
WHERE (n.Name) = 'RUE DE GLAIRE'

// return just the name
RETURN n.Name 
MATCH (n:voie)
WHERE (n.Name) CONTAINS 'RUE DE GLAIRE'
RETURN n.Name
为了使它更等同于您的SQL查询,您可以这样编写它

// match "voie" nodes identified by "n"
MATCH (n:voie)

// where the "Name" is "RUE DE GLAIRE" 
WHERE (n.Name) = 'RUE DE GLAIRE'

// return just the name
RETURN n.Name 
MATCH (n:voie)
WHERE (n.Name) CONTAINS 'RUE DE GLAIRE'
RETURN n.Name

谢谢你的回复,我尝试了上面的问题,我得到了这样的回答:
n.Name“RUE DE GLAIRE”
但我想要这条街上居民的名字(例如,在“RUE DE GLAIRE”,Dupond先生,Martin女士,等等);啊,对不起,我不是很明白。我想我用你真正想要的更新了答案。谢谢你的回答,我尝试了上面的问题,我得到了这样的回答:
n.Name“RUE DE GLAIRE”
但我想要这条街上居民的名字(例如,在“RUE DE GLAIRE”,Dupond先生,Martin女士,等等);啊,对不起,我不是很明白。我想我已经用你真正想要的更新了答案。