Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j Cypher创建条件关系_Neo4j_Cypher - Fatal编程技术网

Neo4j Cypher创建条件关系

Neo4j Cypher创建条件关系,neo4j,cypher,Neo4j,Cypher,我通过csv导入(py2neo批量导入)填充Neo4j。我想通过使用csv文件生成的现有节点来创建关系。在我当前的csv文件中,“sheet_name”列列出了现有csv文件的名称,“row_name”列显示了从相关csv文件生成的节点 for row in reader: if row: name = strip(row[0]) created_by = strip(row[1])

我通过csv导入(py2neo批量导入)填充Neo4j。我想通过使用csv文件生成的现有节点来创建关系。在我当前的csv文件中,“sheet_name”列列出了现有csv文件的名称,“row_name”列显示了从相关csv文件生成的节点

for row in reader:
            if row:
                name = strip(row[0])
                created_by = strip(row[1])
                barcode = strip(row[3])
                sheet_name = strip(row[4])
                row_name = strip(row[5])

                query = """
                    merge (document:Document {name:{a}})
                    merge (sheet_name:Sheet_Name {sheet_name:{b}})
                    merge (to_deliver:To_Deliver {row_name:{c}}) #This node was created before from other csv file
                    merge (delivered_Delivered {row_name:{c}}) #This node was created before from other csv file
                    CASE WHEN sheet_name.value = 'Pending' THEN MERGE (document)-[:STATUS_IS]->(to_deliver)
                    CASE WHEN sheet_name.value = 'Completed' THEN MERGE (document)-[:STATUS_IS]->(delivered)
                   """
                batch.append(query, {"a": name, "b": created_by, "c": barcode, 
                                  "d": sheet_name, "e": row_name})
                i += 1
                j += 1
            batch.process()
我想建立一种基于

--如果“sheet_name”的值为待定,则文档状态为“to_deliver”--和

--如果“图纸名称”的值已完成,则文档状态为“已交付”--


“to_deliver”和“delivered”节点以前是从其他csv文件创建的。当我运行代码时,我得到一个错误,如
无效输入'A':预期的'r/r'
是CASE.。那么是否适合条件语句?谢谢

在Cypher中执行条件写入操作有点棘手。当遍历一个1元素数组时,可以将
FOREACH
CASE结合使用,如果条件为true,则执行该操作

这一概念在上一节中得到了很好的解释