neo4j - 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:
我已经解决了这个问题,这是我没有注意到的错字!
解决方案
这里
MERGE (o:Opening {openingTimes: openingTimes, openingDays: openingDays})
Opening
您使用标签而不是创建节点 OpeningHours
推荐阅读
- sql - MySQL 从具有相同键的多行数据中更新 1 行
- elasticsearch - 查找字段存在的所有文档:在 Elasticsearch 中它有一个值或为空
- google-apps-script - Google Apps 脚本:如何一次更新多个切片器的范围?
- javascript - 从反应变量引用的可写存储中删除数据时,Svelte 出错
- octave - 两个向量的八度过零
- bash - Bash - 命令行参数的长度 $0
- android - Noozxoide EIZO-rewire™ PRO 在 Android 11 下崩溃
- java - 从 JDBC 发出时,Postgres Vacuum/demon 部分工作
- angular - 如何解决异步问题?
- ios - 您如何检查 firebase 快照子项的值是 true 还是 false?