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 每个节点导入多列数据?_Neo4j_Cypher - Fatal编程技术网

Neo4j 每个节点导入多列数据?

Neo4j 每个节点导入多列数据?,neo4j,cypher,Neo4j,Cypher,导入csv时,名称节点上是否可能有多列信息?例如,名称为John Doe,公司,职位为销售总裁,位于加利福尼亚州等,位于单个节点上。如果是的话,在上传过程中如何将这些信息合并到cypher中的单个名称节点中,有什么建议吗?假设我有职位、州、县、电话等信息栏。到目前为止,我所能想到的只是他/她工作的公司的名称和关系 LOAD CSV WITH HEADERS FROM 'FILE:///company_name.csv' AS line MERGE (C:Company {Company: lin

导入csv时,名称节点上是否可能有多列信息?例如,名称为John Doe,公司,职位为销售总裁,位于加利福尼亚州等,位于单个节点上。如果是的话,在上传过程中如何将这些信息合并到cypher中的单个名称节点中,有什么建议吗?假设我有职位、州、县、电话等信息栏。到目前为止,我所能想到的只是他/她工作的公司的名称和关系

LOAD CSV WITH HEADERS FROM 'FILE:///company_name.csv' AS line
MERGE (C:Company {Company: line.Company })
MERGE (N:Name {Name: line.Name })
MERGE (C)<-[:works_for]-(N);
将“FILE:///company_name.CSV”中的标题作为行加载CSV
合并(C:Company{Company:line.Company})
合并(N:Name{Name:line.Name})

MERGE(C)最好的方法是在创建集上使用
在匹配集上使用
,然后在唯一键值上创建/匹配节点

LOAD CSV WITH HEADERS FROM 'FILE:///company_name.csv' AS line
MERGE (C:Company {Company: line.Company })
MERGE (N:Name {Name: line.Name })
ON CREATE SET 
    N.Position = line.Position,
    N.Location = line.Location,
    N.Country = line.Country,
    N.Phone = line.Phone 
ON MATCH SET 
    N.Position = line.Position,
    N.Location = line.Location,
    N.Country = line.Country,
    N.Phone = line.Phone   
MERGE (C)<-[:works_for]-(N);
将“FILE:///company_name.CSV”中的标题作为行加载CSV
合并(C:Company{Company:line.Company})
合并(N:Name{Name:line.Name})
关于创建集
N.位置=直线位置,
N.位置=直线位置,
N.Country=line.Country,
电话
关于比赛集
N.位置=直线位置,
N.位置=直线位置,
N.Country=line.Country,
电话

请原谅我,但我不清楚你想达到什么目的。如果您希望在同一个节点中有多个属性(可能应该是Person而不是Name),只需指定它们,并用逗号:MERGE(p:Person{Name:line.Name,Phone:line.Phone})分隔即可。有用的是在属性上创建一个唯一的约束,该约束是。。。在执行加载之前为您的节点唯一,例如在(p:Person)上创建约束断言p.personID是唯一的;对不起,我想说的是多重属性。我将尝试在方法上使用CREATE约束。我刚刚尝试将“FILE:///company1.CSV”中的头加载为行合并(C:Company{Company:line.Company})在创建集上C.合作伙伴=行。合作伙伴C.产品=行。产品C.合作伙伴\u值=行。合作伙伴C.客户=行。匹配集上的客户C.合作伙伴=行。合作伙伴C.产品=行。产品C.合作伙伴\u值=行。合作伙伴=行。合作伙伴错误无效输入“.”:应为“o/o”、“r/r”或“a/a”(第5行第2列(偏移量:188))“C.Product=line.Product”^
LOAD CSV WITH HEADERS FROM 'FILE:///company_name.csv' AS line
MERGE (C:Company {Company: line.Company })
MERGE (N:Name {Name: line.Name, Position: line.Position, Location line.Location, Country: line.Country, Phone: line.Phone })
MERGE (C)<-[:works_for]-(N);