如何将包含布尔值的 CSV 导入 Neo4j
How to import CSV containing boolean values into Neo4j
我目前正在尝试使用 Cypher 将 CSV 数据导入 Neo4j。
不幸的是,我找不到将特定列 (true/false) 从字符串转换为布尔值的方法。使用例如一个 Case-When 构造,布尔值用于决定是否应该创建一个节点。
因此我的问题是:我做错了什么?
这是数据:
"UUID", "Name", "IsSelectable"
"1", "Abc", 1
"2", "Def", 0
密码语句:
LOAD CSV WITH HEADERS FROM 'file:///<path>' AS row
CREATE (:Category {UUID: row.UUID, Name: row.Name, IsSelectable: ???})
非常感谢,
奥利弗
您可以使用 CASE WHEN THEN ELSE END
表达式。
查看密码参考卡:http://neo4j.com/docs/stable/cypher-refcard
LOAD CSV WITH HEADERS FROM 'file:///<path>' AS row
CREATE (:Category {UUID: row.UUID, Name: row.Name,
IsSelectable: (case row.IsSelectable when 1 then true else false end)})
(case row.IsSelectable when 1 then true else false end)
所有值的结果都是错误的。应该是:
(case row.IsSelectable when '1' then true else false end)
因为 LOAD CSV 仅读取字符串。
您可以使用 toBoolean
将 1/0 转换为 true/false
LOAD CSV WITH HEADERS FROM 'file:///<path>' AS row
CREATE (:Category {
UUID: row.UUID,
Name: row.Name,
IsSelectable: toBoolean(row.IsSelectable)
})
我目前正在尝试使用 Cypher 将 CSV 数据导入 Neo4j。
不幸的是,我找不到将特定列 (true/false) 从字符串转换为布尔值的方法。使用例如一个 Case-When 构造,布尔值用于决定是否应该创建一个节点。
因此我的问题是:我做错了什么?
这是数据:
"UUID", "Name", "IsSelectable"
"1", "Abc", 1
"2", "Def", 0
密码语句:
LOAD CSV WITH HEADERS FROM 'file:///<path>' AS row
CREATE (:Category {UUID: row.UUID, Name: row.Name, IsSelectable: ???})
非常感谢, 奥利弗
您可以使用 CASE WHEN THEN ELSE END
表达式。
查看密码参考卡:http://neo4j.com/docs/stable/cypher-refcard
LOAD CSV WITH HEADERS FROM 'file:///<path>' AS row
CREATE (:Category {UUID: row.UUID, Name: row.Name,
IsSelectable: (case row.IsSelectable when 1 then true else false end)})
(case row.IsSelectable when 1 then true else false end)
所有值的结果都是错误的。应该是:
(case row.IsSelectable when '1' then true else false end)
因为 LOAD CSV 仅读取字符串。
您可以使用 toBoolean
将 1/0 转换为 true/false
LOAD CSV WITH HEADERS FROM 'file:///<path>' AS row
CREATE (:Category {
UUID: row.UUID,
Name: row.Name,
IsSelectable: toBoolean(row.IsSelectable)
})