在 Gremlin 中,使用 coalesce() 和 project() 可以实现左连接等价的操作。
例如,假设有 person 和 city 两个类型的顶点,person 顶点有 name 和 city_id 两个属性,city 顶点有 id 和 name 两个属性。使用以下 Gremlin 代码可以将 person 和 city 表通过 city_id 属性连接起来,从而实现左连接等价的操作:
g.V().hasLabel('person').as('p').
project('name', 'city').
by('name').
by(coalesce(out('lives_in').values('name'), constant('N/A'))).
select('p')
其中,coalesce() 函数用于处理当 person 顶点没有与之匹配的 city 顶点时的情况,即 city 顶点的名称显示为 “N/A”。
参考文献:TinkerPop3文档:左连接等价