Extract Only Values as csv format in gremlin

450 views Asked by At

I am trying to extract values from Graph database. i am trying with the below gremlin console command but it is returning key value pairs, we can convert this to list.

%%gremlin

g.V().hasLabel('airport').limit(2).project('id','label','region','country').by(id()).by(label()).by('region').by('country').fold()

output

[{'id': '1', 'label': 'airport', 'region': 'US-GA', 'country': 'US'}, {'id': '2', 'label': 'airport', 'region': 'US-AK', 'country': 'US'}]

Expected output:

'1', 'airport', 'US-GA', 'US'
'2', 'airport', 'US-AK', 'US'

or

[['1','airport','US-GA','US'], ['2','airport', 'US-AK','US']]

1

There are 1 answers

8
Kelvin Lawrence On BEST ANSWER

Rather than use project you can use values. Steps like project and valueMap return a key:value map, whereas values does not include the keys in its result.

gremlin> g.V().
           hasLabel('airport').
           limit(2).
           local(union(id(),label(),values('region','country')).fold())

==>[1,airport,US,US-GA]
==>[2,airport,US,US-AK]

As an alternative you can just add a select(values) to your current query which I think I prefer as it avoids needing the local and union steps.

gremlin> g.V().
           hasLabel('airport').
           limit(2).
           project('id','label','region','country').
             by(id()).
             by(label()).
             by('region').by('country').
           select(values).
           fold()

==>[[1,airport,US-GA,US],[2,airport,US-AK,US]]