最近在学习cypher查询,如果return的结果是多个list值,该怎么对每个list进行处理呀,想实现的是对list内数据进行不同的位运算,利用unwind展开能否知道是原列表第几个值,或者有什么计数的方法吗
补充:1.利用unwind处理,请问如何将size(list)也加到最后的输出中,直接return会重复输出很多行
2.实现另一种case方法,按照计数对每个列表分段处理
neo4j cypher语句如何实现对返回的多个list数据分段处理
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
6条回答 默认 最新
关注 引自强大而免费的微信小程序:皆我百晓生。
1. 如何处理返回的多个list数据
在Cypher查询中,可以使用
WITH
子句对返回的多个list数据进行处理。WITH
子句可以将前一个查询的结果作为输入,并将该结果传递给下一个查询。下面是一个示例查询,演示如何对返回的两个list数据进行处理:
MATCH (n:Node) RETURN collect(n.name) AS names, collect(n.age) AS ages
在这个查询中,我们匹配了节点标签为
Node
的节点,并返回了这些节点的名字和年龄作为两个不同的list。我们可以使用collect()
函数来将节点属性的值收集到一个list中。接下来,我们可以使用
WITH
子句来对这两个list进行处理和操作:MATCH (n:Node) WITH collect(n.name) AS names, collect(n.age) AS ages RETURN [name IN names | name + ' is ' + toString(ages[names.indexOf(name)])] AS result
在上述查询中,我们使用
WITH
子句将names
和ages
作为输入传递给下一个查询。然后,我们使用列表推导式([name IN names | ...]
)遍历names
列表,并通过ages[names.indexOf(name)]
获取对应的年龄值。最后,我们返回一个带有名字和年龄的字符串的新列表。2. 利用unwind展开以及计数方法
要实现对返回的list内数据进行不同的位运算,并获取原列表内每个值的位置信息,可以使用
UNWIND
操作符将list展开为多个行。然后,可以使用内建函数range()
来获得每个list的索引,并在查询中引入一个计数器。下面是一个示例查询,展示如何对返回的list内的数据进行位运算,并同时获取原列表内的位置信息:
MATCH (n:Node) RETURN collect(n.value) AS values
在这个查询中,我们匹配了节点标签为
Node
的节点,并返回了这些节点的值作为一个list。接下来,我们可以使用
UNWIND
展开操作符和range()
内建函数来处理这个list,并获取每个值的位置信息:MATCH (n:Node) WITH collect(n.value) AS values UNWIND range(0, size(values) - 1) AS index RETURN values[index] AND 2^index AS result
在上述查询中,我们使用
WITH
子句将values
作为输入传递给下一个查询。然后,我们使用UNWIND
展开操作符将values
展开为多个行。通过range(0, size(values) - 1)
,我们可以获得一个从0到list的大小减1的数字范围。然后,我们使用AND
位运算符和2^index
来对每个值进行不同的位运算,并返回结果。通过
index
可以得到每个值在原列表中的位置信息。在这个示例中,我们使用了AND
位运算符和指数运算符对每个值进行位运算。你可以根据具体需求进行修改位运算的操作。希望以上解答对你有帮助!如果有任何进一步的问题,请随时提问。
解决 2无用
悬赏问题
- ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
- ¥50 浦育平台scratch图形化编程
- ¥20 求这个的原理图 只要原理图
- ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
- ¥20 微信的店铺小程序如何修改背景图
- ¥15 UE5.1局部变量对蓝图不可见
- ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
- ¥20 sentry如何捕获上传Android ndk 崩溃
- ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
- ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?