[英]Neo4j csv data ingestion nodes getting replicated
我正在嘗試將 csv 文件攝取到 neo4j 中。 我能夠正確添加屬性,但是當我創建關系時,節點會被復制。 我正在使用的 cypher 查詢
LOAD CSV WITH HEADERS FROM "file:///column_meta.csv" AS csv
CREATE (a:db { db_name: csv.table_schema})
CREATE (b:table {table_name: csv.table_name})
CREATE (c:column {col_name: csv.col_name, col_desc:csv.col_comment})
MERGE (a)<-[:belongs_to]-(b)
MERGE (b)<-[:has]-(c)
這里正在創建節點和關系,但它們中的每一個都是分開的,而我正在考慮創建相互依賴的關系,例如 db_name->table_name->col_name。 誰能指出我做錯了什么?
嘗試這個:
MERGE
可以在全局(有約束)或現有節點的上下文中唯一地創建數據
LOAD CSV WITH HEADERS FROM "file:///column_meta.csv" AS csv
MERGE (a:db { db_name: csv.table_schema})
MERGE (a)<-[:belongs_to]-(b:table {table_name: csv.table_name})
MERGE (b)<-[:has]-(c:column {col_name: csv.col_name})
ON CREATE SET c.col_desc=csv.col_comment
確保在:db(db_name)
上創建約束並在:table(table_name)
和:column(col_Name)
上創建索引
試試這個例子:
--Load Order
LOAD CSV WITH HEADERS FROM 'file:///TestFolder//Order.csv' AS line
WITH line
Merge(O:OrderInformation{name:line.orderID,orderID:line.orderID})
Return Count(*);
--Load Customer
LOAD CSV WITH HEADERS FROM 'file:///TestFolder//Customer.csv' AS line
WITH line
Merge(C:Customer{name:line.customerName,customerID:line.customerID,customerName:line.customerName})
Return Count(*);
--Load Order and Customer Relationship
LOAD CSV WITH HEADERS FROM 'file:///TestFolder//Order.csv' AS row
WITH row
MATCH (O:OrderInformation {name:row.orderID}), (C:Customer {customerID:row.customerID})
//now create a relationship between them
CREATE (C)-[:ORDERS]->(O);
希望能幫助到你!
問候, 維沙爾
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.