如何解决在格林姆林重复
与gremlin相关的两个查询如下:
- 要在重复条件检查期间满足条件时停止遍历。
g.V().has('label_','A')).emit().repeat(inE().outV()).until(has('stop',1)).project('depth','values').by(valueMap('label_','stop'))
当重复语句期间遇到的节点的stop等于1时,我希望查询停止返回更多值。但是查询不会停止并返回所有记录。 需要输出:
=>{label_='A',stop=0}
=>{label_='B',stop=0}
=>{label_='C',stop=1}
=> A,E1,B
=> B,E2,C
A,B,C,E1,E2分别表示属性,其中起始节点是
解决方法
对于第一部分,看来您是在向内而不是在外遍历这是故意的吗?如果是这样,请将重复中的out()
替换为in
g.V().has(label,'A').emit().
repeat(out()).until(has('stop',1)).
project('label','stop').
by(label).
by(values('stop'))
示例:https://gremlify.com/ma2xkkszkzr/1
对于第二部分,我仍然不确定您是什么意思,如果您只是想让所有边缘都露出来并且您可以使用elementMap
:
g.E().elementMap()
示例:https://gremlify.com/ma2xkkszkzr/4
,如果不支持,则可以执行以下操作:
g.E().local(union(
outV(),identity(),inV()
).label().fold())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。