首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4jClient C#如何获取所有节点

Neo4jClient C#如何获取所有节点
EN

Stack Overflow用户
提问于 2012-10-15 00:25:26
回答 2查看 2K关注 0票数 2

我在C#中使用Neo4jClient和Neo4j图形数据库,我想知道如何使用Neo4jClient检索所有节点。

下面是一个cypher查询,它独立于关系方向检索与"KNOWS“有关系的所有节点:

代码语言:javascript
复制
start n =node(*) match n-[r:KNOWS]-(friend) return friend;

下面是Neo4jClient的C#代码:

代码语言:javascript
复制
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执行查询来完成此操作:

代码语言:javascript
复制
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();
EN

回答 2

Stack Overflow用户

发布于 2013-03-22 12:41:16

使用Node<T>.StartCypher(identity)是一种既可以创建查询又可以一次性启动查询的快捷方式。

相反,只需直接从客户端创建查询即可:

代码语言:javascript
复制
client
    .Cypher
    .Start(new { n = All.Nodes })
    .Return<object>("n")

这样,您就可以完全控制START子句了。

票数 1
EN

Stack Overflow用户

发布于 2012-11-07 05:34:57

我当然认为问题是因为它还没有在NEO4JClient库中实现,此外,现在的问题是Neo4JClient团队掩盖了ExecuteGetCypherResults,所以现在我们要么直接实现IRawGraphClient,要么直接使用HttpWebRequest。:-/至少这是我在他们的bitbucker存储库中看到一些信息后得出的结论。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12884172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档