我正在尝试将密码转换为在C#中使用neo4jclient api的查询
这是我的密码
start server=node:node_auto_index(serverId='SHO2K3MS49')
MATCH
server-[:IS_SERVER_TYPE]->type,
appEnv-[:HAS_SERVER]->server,
app-[:HAS_ENV]->appEnv
return
server.serverId,
collect([
appEnv.environmentTypeId,
appEnv.appEnvId,
app.appId,
app.appName
]) ;
Run Code Online (Sandbox Code Playgroud)
该查询为每台服务器返回一行,并收集该服务器上的所有应用程序。
据我所见,.CollectAs api仅允许单个值。
如何使用.net API做到这一点?
编辑
我刚刚尝试过此查询
_connectedClient
.Cypher
.Start(new {server = Node.ByIndexLookup("node_auto_index", "serverId", "SHO2K3MS49") })
.Match("server-[:IS_SERVER_TYPE]->type", "appEnv-[:HAS_SERVER]->server", "app-[:HAS_ENV]->appEnv")
.Return((server, appEnv, app) =>
new
{
ServerName = Return.As<string>("server.serverId"),
aa = Return.As<dynamic> ("collect([appEnv.environmentTypeId,appEnv.appEnvId,app.appId,app.appName])")
})
.Results;
Run Code Online (Sandbox Code Playgroud)
并收到此结果。
堆栈跟踪
at Neo4jClient.Serialization.CypherJsonDeserializer`1.Deserialize(String content)
at Neo4jClient.GraphClient.<>c__DisplayClass1e`1.<Neo4jClient.IRawGraphClient.ExecuteGetCypherResultsAsync>b__1d(Task`1 responseTask)
at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
Run Code Online (Sandbox Code Playgroud)
内部异常
Accessed JArray values with invalid key value: "data". Array position index expected
Run Code Online (Sandbox Code Playgroud)
消息 -为简洁起见删除了样板文本
Neo4jClient …Run Code Online (Sandbox Code Playgroud)