答案在一定程度上取决于你想要什么来代替“父亲”。解决这个问题的一种方法是
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]