neo4j的查询语句中的in关键字条件可以使用参数吗
发布于 7 年前 作者 muyikouzi 7200 次浏览 来自 问答

如题,我想在一个大的id范围内进行特定查询,in后有一个比较大的数组,这个值可以使用参数吗?我试了各种代入参数提示不能解析。

试过的cql大概是这样的: match(n:node{id:1})<-[*0…15]-(m:server) where m.id in {ids} return count(m)------找in条件列表中与n有关的节点个数 ids = [1,2,3,4,5,6] (数组格式) neo4j报错如下: With Params: An error occurred running query An error occurred encoding a struct field Unrecognized type when encoding data for Bolt transport: []int64 [1,2,3,4] 这里带入参数该怎么搞呢,或者有没有其他方法能够解决这样的大范围条件问题。 嗯。谢谢每个点进来的小伙伴,希望能得到好心人的回应!

4 回复

不明白出了什么错

with ids = [1,2,3,4,5,6] match(n:node{id:1})<-[*0…15]-(m:server) where m.id in ids return count(m)

@pangguoming 谢谢亲的回答,有段时间没研究neo4j了。 问题是这样的,我使用golang语言进行neo4j的开发。在go语言调用neo4j的查询接口时,我想向上述表达式的in条件后传一个数组型的参数,得到了neo4j给的错误反馈 With Params: An error occurred running query An error occurred encoding a struct field Unrecognized type when encoding data for Bolt transport: []int64 [1,2,3,4] 提示我neo4j不能识别这样的数组类型。想不出要怎么把这个参数合理的带入进去。

@wkq278276130 谢谢亲的热心回答,这条语句本身在neo4j里面执行时没问题的,能得到预期效果。 就是我在程序里面调用的过程中想用参数代替in 后的条件,传入一个数组参数,好像不太可行。

回到顶部