我在Gremlin中有一个查询,使用Datastax studio,如下所示:
g.V().has('vertexLabel', 'vertexProperty1', '12345').match(
__.as('d').in('edgeLabel1').values('property2').as('NAME1'),
__.as('d').in('edgeLabel2').values('property3').as('NAME2'),
__.as('d').in('edgeLabel1').out('edgeLabel3').values('property4').as('NAME3')
).select('NAME1', 'NAME2', 'NAME3')
如果所有实体都存在,这样可以正常工作,但是如果其中一个实体不在图表上,则找不到任何结果,即使我知道存在结果。我如何创建一个.or查询,如果它们存在,将查找它们。比如说,如果在edgeLabel3的末尾找不到property4,我的查询怎么还能给我另外两个结果(property2和property3)?我尝试过。或查询,但我没有运气。
答案 0 :(得分:1)
您是否尝试过在Gremlin中使用union步骤?看起来应该是这样的:
g.V('book:882178048:25').has('vertexLabel', 'vertexProperty1', '12345')
.union(
as('d').in('edgeLabel1').values('property2').store('NAME1'),
as('d').in('edgeLabel2').values('property3').store('NAME2'),
as('d').in('edgeLabel1').out('edgeLabel3').values('property4').store('NAME3')
).cap('NAME1', 'NAME2', 'NAME3')