Go 使用neo4j驱动程序时使用匹配语句,返回的result.record为nil
匹配语句:Go 使用neo4j驱动程序时使用匹配语句,返回的result.record为nil,go,neo4j,cypher,Go,Neo4j,Cypher,匹配语句: result, errRet = session.Run("MATCH (n) return n", nil) log.Printf("hello here: %+v", result) 结果: &{err:<nil> iter:0xc00017c600 stream:0xc00072b020 cypher:MATCH (n) return n params:map[] allReceived:false unconsu
result, errRet = session.Run("MATCH (n) return n", nil)
log.Printf("hello here: %+v", result)
结果:
&{err:<nil> iter:0xc00017c600 stream:0xc00072b020 cypher:MATCH (n) return n params:map[] allReceived:false unconsumed:{root:{next:<nil> prev:<nil> list:<nil> Value:<nil>} len:0} record:<nil> summary:<nil>}
&{err:iter:0xc00017c600流:0xc00072b020密码:匹配(n)返回n参数:映射[]全部接收:假未使用:{root:{next:prev:list:Value:}len:0}记录:摘要:}
以db为单位的实际数据:
当我搜索时,却找不到答案。请告诉我哪一部分我错了,非常感谢
顺便说一句,create语句对我来说真的很好。最初,
result.record
字段指向第一条记录之前的位置,因此它是nil
。您需要调用record.Next()
将其移动到第一条记录。通常在循环中完成:
用于result.Next(){
log.Printf(“当前记录为:%+v”,result.record())
}
请参见我不熟悉该驱动程序,但nil是干什么的?感谢您的评论,
nil
是调用run
func时的参数映射,可能您感兴趣。我通常使用python驱动程序或Neo4j graphql js与我的Neo4j实例交互。在这两种格式中,您只能使用语句“MATCH(n)return n.”也许不用零就试试吧?看起来在他们的文档中,他们包含了一个map:result,err:=session.Run(“CREATE(n:Item{id:$id,name:$name})返回n.id,n.name”,map[string]接口{}{“id”:1,“name”:“Item 1”,})感谢您的回答,nil是必需的,并且在不使用第二个参数的情况下调用func。我想使用匹配(n)返回(n)
的结果检查c是否存在现有资源,如果是,则更新,否则创建。最后,我找到了一种使用mergeoncreateset
语句解决这个问题的方法。再次感谢你的朋友。