首页 > 解决方案 > Neo4J:基于节点键的部分值的查询 [已解决]

问题描述

我有一个 csv 数据集,其中包含一列时间和一列天。

示例数据如下所示:

第一排 "9:00 - 15:00", "Monday, Tuesday"

第二排 "10:00 - 14:00", "Saturday"

第三排 "10:00 - 14:00", "Saturday"

有多个重复数据,因此日期和时间一起创建一个唯一的 id,因此只有这些唯一值将在节点中。

我对此创建了一个约束,如下所示:

CREATE CONSTRAINT ON (o:OpeningHours) ASSERT (o.openingTimes, o.openingDays) IS NODE KEY

我加载 csv 文件并创建节点,如下所示:

LOAD CSV WITH HEADERS FROM 'file:///OpeningHours.csv' AS row 
WITH row.times AS openingTimes, row.days AS openingDays 
MERGE (o:OpeningHours {openingTimes: openingTimes, openingDays: openingDays})
SET o.openingTimes = openingTimes, o.openingDays = openingDays

现在我想返回星期六所有开放时间的节点,所以我这样做:

MATCH(o:OpeningHours)
WHERE o.openingDays CONTAINS 'Saturday'
RETURN o

但是,此查询不返回任何内容。有没有办法基于部分节点键进行此查询,还是我完全不在场?

多谢你们。

编辑:

当我运行以下查询时

MATCH (o:OpeningHours)
RETURN o.openingDays
LIMIT 3

我得到以下结果:

第一排 "Monday, Tuesday, Wednesday"

第二排 "Saturday"

第三排 "Sunday"

编辑2:

我已经解决了这个问题,这是我没有注意到的错字!

标签: neo4jcypher

解决方案


这里

MERGE (o:Opening {openingTimes: openingTimes, openingDays: openingDays})

Opening您使用标签而不是创建节点 OpeningHours


推荐阅读