我正在评估Neo4j和Cypher用于生产软件,我是从SQL服务器迁移数据,但为此我没有使用LOADCSV cypher命令,因为我需要更多的控制权在创建的节点和关系上。 我现在所做的事情与此相似:
{ "道具" :[{ "名称" :" Andres", "位置" :"开发人员", " date":" 2018-01-01" },{ "名称" :" Michael", "位置" :"开发人员" }] }
UNWIND $支持AS地图 创建(n:人) SET n =地图
我想要实现的是将date属性设置为正确的数据类型(datetime)。有没有办法告诉cypher将该字段解析为日期时间?
注意:我已经尝试过" SET n.Date = datetime(map.date)"方法,但这也将属性Date添加到我不需要的第二个记录。
顺便说一句,我真的很喜欢和Neo4j一起工作;)
答案 0 :(得分:0)
您可以使用以下事实:如果赋值为NULL,则不会创建或删除该属性:
WITH [ { name: "Andres", position: "Developer", date: "2018-01-01" },
{ name: "Michael", position: "Developer" } ] AS props
UNWIND props AS map CREATE (n:Person)
SET n = map,
n.date = CASE WHEN n.date IS NULL THEN NULL ELSE datetime(n.date) END
RETURN n