{"action":"created","issue":{"url":"https://api.github.com/repos/mpollmeier/gremlin-scala/issues/69","labels_url":"https://api.github.com/repos/mpollmeier/gremlin-scala/issues/69/labels{/name}","comments_url":"https://api.github.com/repos/mpollmeier/gremlin-scala/issues/69/comments","events_url":"https://api.github.com/repos/mpollmeier/gremlin-scala/issues/69/events","html_url":"https://github.com/mpollmeier/gremlin-scala/issues/69","id":90205813,"number":69,"title":"`hasNot(key, value)` missing","user":{"login":"petrjanda","id":419414,"avatar_url":"https://avatars.githubusercontent.com/u/419414?v=3","gravatar_id":"","url":"https://api.github.com/users/petrjanda","html_url":"https://github.com/petrjanda","followers_url":"https://api.github.com/users/petrjanda/followers","following_url":"https://api.github.com/users/petrjanda/following{/other_user}","gists_url":"https://api.github.com/users/petrjanda/gists{/gist_id}","starred_url":"https://api.github.com/users/petrjanda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petrjanda/subscriptions","organizations_url":"https://api.github.com/users/petrjanda/orgs","repos_url":"https://api.github.com/users/petrjanda/repos","events_url":"https://api.github.com/users/petrjanda/events{/privacy}","received_events_url":"https://api.github.com/users/petrjanda/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-06-22T20:33:07Z","updated_at":"2015-06-22T20:38:54Z","closed_at":null,"body":"According to Gremlin docs there is a handy traversal `hasNot(key, value)` on both edges and vertices (http://gremlindocs.com/#filter/hasnot). I saw it was missing in `scala-gremlin`. Do I assume correctly its due to the fact that `GraphTraversal` doesn't expose it either? (https://github.com/apache/incubator-tinkerpop/blob/master/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java).\r\n\r\nIt would be awesome to have that one."},"comment":{"url":"https://api.github.com/repos/mpollmeier/gremlin-scala/issues/comments/114255698","html_url":"https://github.com/mpollmeier/gremlin-scala/issues/69#issuecomment-114255698","issue_url":"https://api.github.com/repos/mpollmeier/gremlin-scala/issues/69","id":114255698,"user":{"login":"petrjanda","id":419414,"avatar_url":"https://avatars.githubusercontent.com/u/419414?v=3","gravatar_id":"","url":"https://api.github.com/users/petrjanda","html_url":"https://github.com/petrjanda","followers_url":"https://api.github.com/users/petrjanda/followers","following_url":"https://api.github.com/users/petrjanda/following{/other_user}","gists_url":"https://api.github.com/users/petrjanda/gists{/gist_id}","starred_url":"https://api.github.com/users/petrjanda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/petrjanda/subscriptions","organizations_url":"https://api.github.com/users/petrjanda/orgs","repos_url":"https://api.github.com/users/petrjanda/repos","events_url":"https://api.github.com/users/petrjanda/events{/privacy}","received_events_url":"https://api.github.com/users/petrjanda/received_events","type":"User","site_admin":false},"created_at":"2015-06-22T20:38:54Z","updated_at":"2015-06-22T20:38:54Z","body":"I don't have a Java background but do I understand that method like this:\r\n\r\n```java\r\n    public default GraphTraversal<S, E> hasNot(final String key, final Object value) {\r\n        return this.not(__.has(key, value));\r\n    }\r\n```\r\n\r\nwould allow `scala-gremlin` to expose this either? Or perhaps is there any workaround which can be done from the `scala-gremlin` itself?\r\n\r\nI've managed to do something like:\r\n\r\n```scala\r\ngraph.V.filter { _\r\n  .out(\"did\").dedup()\r\n  .has(\"name\", event)\r\n  .count.next() == 0\r\n}\r\n```\r\n\r\nbut\r\n\r\n```scala\r\ngraph.V.hasNot(\"name\", event)\r\n```\r\n\r\nwould be much nicer."}}