cscsusu 2023-12-07 19:39 采纳率: 0%
浏览 30
已结题

neo4j cypher语句如何实现对返回的多个list数据分段处理

最近在学习cypher查询,如果return的结果是多个list值,该怎么对每个list进行处理呀,想实现的是对list内数据进行不同的位运算,利用unwind展开能否知道是原列表第几个值,或者有什么计数的方法吗
补充:1.利用unwind处理,请问如何将size(list)也加到最后的输出中,直接return会重复输出很多行
2.实现另一种case方法,按照计数对每个列表分段处理

  • 写回答

6条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-12-07 22:59
    关注

    引自强大而免费的微信小程序:皆我百晓生

    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子句将namesages作为输入传递给下一个查询。然后,我们使用列表推导式([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位运算符和指数运算符对每个值进行位运算。你可以根据具体需求进行修改位运算的操作。

    希望以上解答对你有帮助!如果有任何进一步的问题,请随时提问。

    评论 编辑记录
    1人已打赏

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月8日
  • 修改了问题 12月8日
  • 赞助了问题酬金15元 12月7日
  • 修改了问题 12月7日
  • 展开全部

悬赏问题

  • ¥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驱动,如何解决?