hasKey() and hasValue() are for vertex properties only . so technically - bad javadoc.
on the other hand I can't say I like this - it's bitten me enough times now that i know how to use it, but is there any reason why hasKey() shouldn't just work with any Element? On Thu, Jul 13, 2017 at 5:01 PM, Robert Dale <[email protected]> wrote: > hasKey/hasValue javadocs state: > > Filters vertices, edges and vertex properties based on their key. > > Am I misinterpreting, misusing, or misinformed? > > gremlin> graph = TinkerFactory.createModern() > ==>tinkergraph[vertices:6 edges:6] > gremlin> g = graph.traversal( > traversal( traversal() > gremlin> g = graph.traversal() > ==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard] > > // Does NOT appear to filter vertices > gremlin> g.V().valueMap() > ==>[name:[marko],age:[29]] > ==>[name:[vadas],age:[27]] > ==>[name:[lop],lang:[java]] > ==>[name:[josh],age:[32]] > ==>[name:[ripple],lang:[java]] > ==>[name:[peter],age:[35]] > gremlin> g.V().hasKey('name') > gremlin> g.V().hasValue('marko') > > // Does NOT appear to filter edges > gremlin> g.E().valueMap() > ==>[weight:0.5] > ==>[weight:1.0] > ==>[weight:0.4] > ==>[weight:1.0] > ==>[weight:0.4] > ==>[weight:0.2] > gremlin> g.E().hasKey('weight') > gremlin> g.E().hasValue(1.0) > > // Does NOT appear to filter edge properties (although was not claimed) > gremlin> g.E().properties().hasKey('weight') > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerProperty cannot > be > cast to org.apache.tinkerpop.gremlin.structure.Element > Type ':help' or ':h' for help. > Display stack trace? [yN] > gremlin> g.E().properties().hasValue(1.0) > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerProperty cannot > be > cast to org.apache.tinkerpop.gremlin.structure.Element > Type ':help' or ':h' for help. > Display stack trace? [yN] > > // Does filter Vertex Properties! > gremlin> g.V().properties().hasKey('name') > ==>vp[name->marko] > ==>vp[name->vadas] > ==>vp[name->lop] > ==>vp[name->josh] > ==>vp[name->ripple] > ==>vp[name->peter] > gremlin> g.V().properties().hasValue('marko') > ==>vp[name->marko] > > > > Robert Dale >
