Gremlin查询:如何获取关联顶点Y可为空的所有顶点X?
解决Gremlin查询保留所有X顶点的问题
这是个很常见的Gremlin查询场景,你当前的查询里out('hasB')这个步骤会过滤掉没有hasB关联边的顶点X,所以只能得到Y不为空的结果。要实现“获取所有顶点X,无论关联的Y是否为空”的需求,你需要用optional()步骤来包裹out('hasB')的遍历逻辑——它会尝试执行内部的遍历操作,但如果没有匹配到对应的Y顶点,也不会丢弃当前的X顶点,而是会将Y字段设为空值保留下来。
调整后的完整查询语句如下:
g.V('xxx').out('hasA').as('X').optional(out('hasB').as('Y')).select('X','Y')
这样修改后,当某个X顶点没有对应的Y顶点时,查询结果里的Y字段会以空值(比如null)的形式呈现,但X顶点的所有数据都会被完整保留,完全满足你的需求。
内容的提问来源于stack exchange,提问作者sand87
相关产品推荐
相关产品推荐

