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
>

Reply via email to