2014-07-21 52 views
0

我是neo4j和neo4jclient的新手,所以請原諒如果我的問題不在正確的軌道上。使用neo4jclient在一個事務中添加多個節點和關係

通過突變密碼查詢,可以在一次調用中創建多個節點和關係。我想創建一個類似於neo4j附帶的影片示例數據的查詢,以便它在一篇文章中創建多個節點和關係到REST API。

是否有可能使用neo4jclinet編寫這樣的查詢?

我看過下面的文檔,但是我看不到後面的查詢類型的例子。我對此很新,所以也許我錯過了它。

https://github.com/Readify/Neo4jClient/wiki/cypher-examples

回答

0

通常有兩種方法可以做到這一點。首先是批量使用多個查詢,其中isn't supported by the neo4jclient。查看源代碼顯示有某種批處理支持(如GraphClient.ExecuteBatch方法),但這些是私有的。

第二個是通過添加每個節點作爲參數來構建一個Cypher查詢,這應該導致here所述的請求。該代碼是這樣的:

var queryBuilder = client.Cypher. 
    Create ("(movie:Movide {newMovie})"); 

foreach (Movie movie in movies) { 
    queryBuilder = queryBuilder.WithParam ("newMovie", movie); 
} 

queryBuilder.ExecuteWithoutResults() 

然而,這將引發ArgumentException:「與給定值的參數查詢已定義。」如果列表中有多個元素。

所以你可能堅持與那些討厭的解決方法之一:

  1. 建設有多個查詢(索引)參數
  2. 執行一個查詢一個節點
  3. 一個manual query,這是氣餒。

在我看來,這似乎是一個值得報告給Readify的問題。

+0

感謝您的回答。雖然這增加了多個節點,但它不會同時添加關係。我一直在尋找鏈接創建來實現這一點。 –

+0

是的,鏈接創建方法是我提到的第一個解決方法 - 您仍然需要手動命名(索引)節點/關係。這實際上是Neo4j'dump'命令的作用。查看[這裏的輸出](http://docs.neo4j.org/chunked/milestone/shell-commands.html#_example_dump_scripts)。看看節點和關係是如何巧妙地編入索引的? –

+0

雖然這仍然是一個令人討厭的解決方法。 「正確」的方式是我所描述的。但事實是,它們在當前版本的Neo4jClient中無法實現。 –

相關問題