我最近开始使用 Neo4JClient 进行 .NET 集成,并且我(最终)已经解决了大部分问题。然而,这个却难倒了我。
我有兴趣从 Cypher 查询获取路径,最好是在 POCO 对象中,这样我就可以在这些查询的前端工作。
所以我的问题本质上是如何在 Neo4JClient 中执行此操作?如果我不能,其他 Neo4J .NET 客户端是否支持此功能?
示例密码查询:
start n = node:idx(id="{id}")
MATCH p=(n)-[:RELATED_TO*0..3]-()
RETURN p;
所以,我希望特定节点周围的所有节点的传入和传出关系深度为 3。还有另一种类型的查询,但它使用 withs,我需要找出 Neo4JClient 是否/如何支持它(另一个不过有问题)。
到目前为止,我一直在使用具有开放集和封闭集的 Gremlin 来使用有关其子关系的信息来填充自定义对象。它绝不是有效的,因此为什么我想以某种方式使用路径来做到这一点。有问题的自定义对象看起来有点像这样。
public class ConnectedNode : BaseNode
{
public List<NodeRelation> RelatedNodes { get; set; }
public ConnectedNode()
{
RelatedNodes = new List<NodeRelation>();
}
}
public class NodeRelation
{
// ... various properties for relationship payload type stuff
public ConnectedNode RelatedNode { get; set; }
public RelationshipDirection Direction { get; set; }
}
只要高效,我就很高兴能够在我正在寻找的路径上拉回节点和关系数据。
最佳答案
你尝试过吗:
ICypherFluentQueryReturned<PathsResult> query
= graphClient.Cypher
.StartWithNodeIndexLookup("n", "idx", "id", id)
.Match("p=(n)-[:RELATED_TO*0..2]-()")
.Return<PathsResult>("p");
IEnumerable<PathsResult> res = query.Results;
res
中的每个结果都应该是您想要的结果?
关于.net - 如何在 Neo4jClient 中检索路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15108301/