load csv
添加节点数据
LOAD CSV WITH HEADERS FROM "http://data.neo4j.com/northwind/products.csv" AS rowCREATE (n:Product)SET n = row,n.unitPrice = toFloat(row.unitPrice),n.unitsInStock = toInteger(row.unitsInStock), n.unitsOnOrder = toInteger(row.unitsOnOrder),n.reorderLevel = toInteger(row.reorderLevel), n.discontinued = (row.discontinued <> "0")
LOAD CSV WITH HEADERS FROM "http://data.neo4j.com/northwind/categories.csv" AS rowCREATE (n:Category)SET n = row
LOAD CSV WITH HEADERS FROM "http://data.neo4j.com/northwind/suppliers.csv" AS rowCREATE (n:Supplier)SET n = row
添加节点
LOAD CSV WITH HEADERS FROM "http://data.neo4j.com/northwind/customers.csv" AS rowCREATE (n:Customer)SET n = row
LOAD CSV WITH HEADERS FROM "http://data.neo4j.com/northwind/orders.csv" AS rowCREATE (n:Order)SET n = row
建立索引
CREATE INDEX ON :Product(productID)
建立关系
Match(p:Product),(n:Category)where p.categoryID = categoryIDcreate(p)-[:part_of]->(n)
MATCH (c:Customer),(o:Order)WHERE c.customerID = o.customerIDCREATE (c)-[:PURCHASED]->(o)
查询
collect
MATCH (s:Supplier)-->(:Product)-->(c:Category)RETURN s.companyName as Company, collect(distinct c.categoryName) as Categories
查询-限制了分类名称
MATCH (c:Category {categoryName:"Produce"})<--(:Product)<--(s:Supplier)RETURN DISTINCT s.companyName as ProduceSuppliers
加载订单明细表
LOAD CSV WITH HEADERS FROM "http://data.neo4j.com/northwind/order-details.csv" AS rowMATCH (p:Product), (o:Order)WHERE p.productID = row.productID AND o.orderID = row.orderIDCREATE (o)-[details:ORDERS]->(p)SET details = row,details.quantity = toInteger(row.quantity)
查询客户订单数量
MATCH (cust:Customer)-[:PURCHASED]->(:Order)-[o:ORDERS]->(p:Product),(p)-[:PART_OF]->(c:Category {categoryName:"Produce"})RETURN DISTINCT cust.contactName as CustomerName, SUM(o.quantity) AS TotalProductsPurchased
