【问题标题】:NEO4J query with MATCH, WHERE, doesn't work带有 MATCH、WHERE 的 NEO4J 查询不起作用
【发布时间】:2019-11-26 09:52:51
【问题描述】:

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

这里是代码(在 NEO4J 沙箱中,csv 文件在谷歌表格中,可公开访问):

LOAD CSV WITH HEADERS FROM 'https://docs.google.com/spreadsheets/d/17UhQ3m2dE3wS4IsBjgv0ozcW_zH2rSBs2ZUdqeT4cQw/export?format=csv&id=17UhQ3m2dE3wS4IsBjgv0ozcW_zH2rSBs2ZUdqeT4cQw&gid=726094387' AS line

MERGE (cp:cp {Name:line.cp})
MERGE (commune:commune {Name:line.commune})
MERGE (voie:voie {Name:line.rao_libelle_voie})
MERGE (adr:adr {Name:line.adr_lib_ap_ocr_postal_0})
MERGE (name:name {Name:line.adr_l1_name})

MERGE (cp) -[:TO {dist:line.count} ]-> (commune)
MERGE (commune) -[:TO {dist:line.count} ]-> (voie)
MERGE (voie) -[:TO {dist:line.count} ]-> (adr)
MERGE (adr) -[:TO {dist:line.count} ]-> (name)

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

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

SELECT `adr_l1_name` 
  FROM `database`
  WHERE ` rao_libelle_voie ` LIKE '%RUE DE GLAIRE%'

结果有效;

在 NEO4J 沙箱中,我提出这个请求:

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

没有错误信息,但没有出现结果;

【问题讨论】:

    标签: neo4j where-clause sql-like


    【解决方案1】:

    更新了实际想要的操作

    // 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)加载了所有数据,并将标识属性设为正确大小写 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 
    

    为了使其更等同于您的 SQL 查询,您可以这样编写...

    MATCH (n:voie)
    WHERE (n.Name) CONTAINS 'RUE DE GLAIRE'
    RETURN n.Name
    

    【讨论】:

    • 感谢您的回复,我尝试了上面的查询,我得到了这样的回复:n.Name "RUE DE GLAIRE" 但我想要这条街居民的名字(例如,在'RUE DE GLAIRE' 、杜邦先生、马丁女士等);
    • 啊,对不起,我不是很明白。我想我用你真正想要的更新了答案。
    猜你喜欢
    • 2013-10-10
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多