簡體   English   中英

Neo4jClient C#如何獲取所有節點

[英]Neo4jClient C# How to get all nodes

我在C#中使用Neo4jClient和Neo4j圖形數據庫,我想知道如何使用Neo4jClient檢索所有節點。

這是密碼查詢,用於檢索與“ KNOWS”有關系的所有節點,而與關系方向無關:

start n =node(*) match n-[r:KNOWS]-(friend) return friend;

這是Neo4jClient的C#代碼:

var client = new GraphClient(new Uri("http://localhost:7474/db/data"));
client.Connect();

var cypherFluentQueryReturned = client.RootNode
                .StartCypher("n")
                .Match("n-[:KNOWS]->friend")
                .Return<Node<Person>>("friend");

但是Neo4jClient不允許從*檢索所有節點,而只能從起點(此處是根節點)檢索。
我如何用Neo4jClient檢索所有節點,而不僅檢索附加到根節點的節點?

似乎沒有辦法通過Neo4jClient.GraphClient從*查詢節點。

但是我可以通過使用RawGraphClient執行查詢來做到這一點:

CypherQuery query = new CypherQuery("start n=node(*) match n-[KNOWS]-(person) return person", new Dictionary<string, object>(), CypherResultMode.Set);
var persons = ((IRawGraphClient)client).ExecuteGetCypherResults<Person>(query).ToList();

使用Node<T>.StartCypher(identity)是創建查詢並一次性啟動所有查詢的快捷方式。

而是直接從客戶端創建查詢:

client
    .Cypher
    .Start(new { n = All.Nodes })
    .Return<object>("n")

然后,您可以完全控制START子句。

我當然認為這個問題是因為尚未在NEO4JClient庫中實現它,此外,現在的問題是Neo4JClient團隊遮蓋了ExecuteGetCypherResults,所以現在我們將不得不直接實現IRawGraphClient或僅使用HttpWebRequest來實現。 :-/至少這是我在bitbucker的存儲庫中看到一些信息后得出的結論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM