gremlin - Gremlin:将查询的输出构建为二维数组
问题描述
我想以二维数组格式获取图形的所有用户的朋友列表,例如:
[
[friend, friend, friend],
[friend, friend, friend],
[friend, friend, friend],
]
我想出了这个查询:
g.V().hasLabel("user").both("friend");
但是该查询返回所有用户的朋友并将其放入同一个列表中,而不是我想要的,我想要一个二维数组,其中每个项目都是每个用户的朋友列表。
我需要什么来实现这一目标?
解决方案
您可以通过使用project()、select()以及fold() / expand()步骤来以所需的方式格式化遍历结果。例如,如果我在 TinkerPop 的现代图上运行下面的遍历:
g.V().project('foff').
by(
both().fold().
project('foff').
by(
unfold().both().fold()
)
).
select(values).unfold().
select(values).fold()
我得到一个二维数组的答案,如下所示:
[
[[v[1],v[4],v[6],v[1],v[5],v[3],v[1]]],
[[v[3],v[2],v[4]]],
[[v[3],v[2],v[4],v[5],v[3],v[1],v[3]]],
[[v[4],v[1],v[4],v[6],v[3],v[2],v[4]]],
[[v[5],v[3],v[1]]],[[v[1],v[4],v[6]]]
]
推荐阅读
- html - 如何在 VSCode 中关闭 HTML 中的括号自动完成功能?
- javascript - React Native - {"name":"Invariant Violation","framesToPop":1}
- python - 如何在便笺文档中获取前五个值并放入列表(Python)
- python - 用python一次替换列表中的每个字符/字符串
- java - 在春季测试执行期间更改当前用户身份验证
- javascript - 有一个正则表达式匹配'aa'和'bb',但不是'ab'?
- html - 在其父框中显示一个元素
- git - 致命:协议错误:意外“运行 git 时出错:fork/exec /usr/bin/git-receive-pack:没有这样的文件或目录”
- swiftui - 列表项未更新
- vue.js - 如何缓存过滤掉的元素以防止在 v-for 中重新渲染?