首页 文章

neo4j:Cypher用uuid加载CSV

提问于
浏览
3

我开始使用Cypher的LOAD CSV for Neo4J将更大的csv文件导入我的数据库 . 我想向每个导入的节点添加一个唯一的ID(uuid)作为属性 .

我的尝试是:

LOAD CSV FROM "file:..." AS csvLine
CREATE (c:Customer { uuid: {uuid}, name: csvLine[0], code: csvLine[1]})

不幸的是,我为每个节点收到相同的UUID(虽然它是一个通常在调用时生成UUID的函数),看起来UUID生成了一次,然后在创建节点和解析csv文件时附加到每个节点 .

有没有办法为每个导入的csv-line生成一个新的UUID来标记节点?

感谢Balael的提示

2 回答

  • 4

    不知道你在哪里看到是一个函数 . 它只是使用你传入的任何参数“uuid” .

    创建CSV时,您必须生成一个uuid . 在密码中,目前没有 uuid() 函数 .

    您可以做的一个解决方法是:

    LOAD CSV FROM "file:..." AS csvLine
    CREATE (c:Customer { name: csvLine[0], code: csvLine[1]})
    SET c.id = id(c)
    
  • 6

    你也可以使用GraphAware UUID Module .

    您所要做的就是将framework jaruuid module jar放入plugins目录,将以下2行添加到neo4j.properties中,然后重新启动Neo4j .

    com.graphaware.runtime.enabled=true
    com.graphaware.module.UIDM.1=com.graphaware.module.uuid.UuidBootstrapper
    

    任何新节点(无论如何创建)都将自动获得UUID .

相关问题