2
votes

I am trying to return something like

{
  "label1" : ["prop1","prop2"],
  "label2" : ["prop3","prop4"],
  "label2" : ["prop1","prop3"]
}

etc where the labels[N] are vertex label values and the props array are the properties for these vertices.

I can get a list of labels and I can get a list of properties but I can't combine them in a single object. I could potentially do the two queries and combine the two arrays ultimately, but something like

g.V().valueMap().select(keys).dedup();

only gets properties where there are any, so if a vertex type doesn't have any properties the array returned by this is a different size than doing

g.V().label().dedup();

This is using gremlin syntax (TP3) Thanks

1

1 Answers

11
votes

I'm assuming that you're trying to get sort of a schema definition. Note that this will be a fairly expensive traversal as you have to iterate all vertices to do this:

gremlin> g.V().
......1>   group().
......2>     by(label).
......3>     by(properties().
......4>        label().
......5>        dedup().
......6>        fold())
==>[software:[name,lang],person:[name,age]]