2014-03-04 60 views
0

說我有一個訂單節點數據庫如下如何重構中的Neo4j數據

Order{OrderId, Customer, Date, Quantity, Product} 

現在我要重構數據庫中的這個節點下面看看使用暗號詢問

我知道我們實際上可以直接在密碼中做這樣的事情,而不必將所有節點加載到我的代碼中,然後對數據庫進行多次密碼調用。

對於某些人來說,是否有可能幫助我理解如何在不引入客戶,產品和日節點重複的情況下完成重構。

Rrgards 基蘭

回答

0

是的,你可以操縱與CYPHER一個Neo4j的數據庫。

猜測,您目前的訂單節點類似於:

CREATE (:ORDER {orderId:100,customer:'John',date:13546354,quantity:1,product:'pizza'}) 

你可以寫:

MATCH (o:ORDER) 
CREATE (d:DAY{timestamp:o.date}) <- [:PLACED_ON] - o - [:PLACED_BY] -> (c:CUSTOMER{name:o.customer}) 
CREATE o - [:FOR_PRODUCT] -> (p:PRODUCT{name:o.product}) 
REMOVE o.product, o.customer, o.date 
RETURN o as order, d as day, c as customer, p as product 

查詢輸出結果將是:

Nodes created: 3 
Relationships created: 3 
Properties set: 6 
Labels added: 3 

注意,如果你有一個大的數據集,遷移整個數據庫可能非常耗時!您可能想要嘗試2.1.0里程碑版本中的PERIODIC COMMIT功能。

+0

謝謝,我把這一切與我嘗試使用foreach混爲一談! – Kiran