答案在一定程度上取决于您想要返回什么来代替“父亲”。处理它的一种方法是使用coalesce():
gremlin> g.V().project('name','age').
......1> by('name').
......2> by(coalesce(values('age'),constant('none')))
==>[name:marko,age:29]
==>[name:vadas,age:27]
==>[name:lop,age:none]
==>[name:josh,age:32]
==>[name:ripple,age:none]
==>[name:peter,age:35]
project() 步骤要求by() 返回一些东西。如果您想更好地塑造您的结果并删除不相关的“年龄”属性,您可以发布过滤投影的Map:
gremlin> g.V().
......1> project('name','age').
......2> by('name').
......3> by(coalesce(values('age'),constant('none'))).
......4> local(unfold().
......5> filter(select(values).is(P.neq('none'))).
......6> group().
......7> by(keys).
......8> by(select(values).unfold()))
==>[name:marko,age:29]
==>[name:vadas,age:27]
==>[name:lop]
==>[name:josh,age:32]
==>[name:ripple]
==>[name:peter,age:35]