c# - Neo4j 密码转换查询到 C#
问题描述
我需要将此查询转换为与 c# 中的 graphclient 一起使用:
MATCH p=(n)-[r*2..10]-(m)
WHERE n.Id = 94 and m.Id = 94
AND NONE (node IN NODES(p) WHERE SIZE(
FILTER(x IN NODES(p) WHERE node = x AND x.Id <> 94)
) > 1
)
RETURN EXTRACT(n IN NODES(p)| n.Id) AS Paths, length(p), r
order by length(p)
解决方案
我可以放在一起的最接近的解决方案是:
var results = neoDB.Cypher
.Match("p=(n:JUNCTIONS)-[r*2..10]-(m:JUNCTIONS)")
.Where("n.Id={startNodeId} and m.Id={endNodeId}")
.WithParam("startNodeId", 92)
.WithParam("endNodeId", 92)
.Return((p, n, m, r) => new
{
path = p.CollectAs<Neo4jClient.ApiModels.Cypher.PathsResult>(),
node1 = n.As<cNode>(),
node2 = m.As<cNode>(),
Relation = r.As<IEnumerable<cNode>>()
}).Results;
长度大于一的过滤器是不必要的,这个解决方案对我有好处
推荐阅读
- c# - ASP.net core 3.0 GET Method with %2B in query parameter 在 Azure 上不起作用
- android - Android + Gitlab CI
- python - 如何在 IIS 服务器上的 conda 基础环境中部署 python flask 应用程序?
- python-3.x - PyQt 是否有类似的 Toastr?
- epplus - 在复杂电子表格上使用 EPPlus 时如何解决“缺少根元素”问题
- spring-boot - Spring Boot、Minikube、Istio 和 Keycloak:“无效参数:redirect_uri”
- unity3d - 如何通过包含 Unity 参数的脚本向按钮添加按钮事件?
- sql - 将具有唯一值的列转置到行的 SQL 查询
- angular - CloudMQTT 的握手问题 - Angular
- python - 关于共享内存如何在 Python 的多编程库中工作的问题