valueMap() is a really convenient step: gremlin> g.V().has('person','name','marko').valueMap() ==>[name:[marko],age:[29]]
or perhaps more preferably: gremlin> g.V().has('person','name','marko').valueMap('name','age') ==>[name:[marko],age:[29]] but argh - multiproperties ruin everything. so then we're forced into Gremlin acrobatics: gremlin> g.V().has('name','marko'). ......1> valueMap('name','age'). ......2> unfold(). ......3> group(). ......4> by(keys). ......5> by(select(values).unfold()) ==>[name:marko,age:29] or as I usually recommend, use project(): gremlin> g.V().has('person','name','marko').project('name','age').by('name').by('age') ==>[name:marko,age:29] which is fine, but you pretty much have to type a lot more especially if there are a lot of properties to contend with. What if we were to modulate valueMap() with by(Traversal) so that: g.V().has('person','name','marko'). valueMap('name','age'). by(unfold()) and the by() are just applied round-robin on the keys? Thoughts?