小编Mat*_*hie的帖子

Neo4jClient Cypher查询收集具有多个值的语句

我正在尝试将密码转换为在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)

c# neo4j neo4jclient

2
推荐指数
1
解决办法
1712
查看次数

标签 统计

c# ×1

neo4j ×1

neo4jclient ×1