Я использую python для выполнения моих запросов gremlin, к которым я все еще привыкаю / изучаю. Допустим, у меня есть метки вершин A
и B
, и может быть ребро от A
до B
, называемое abEdge
. Я могу найти B
вершин, которые имеют такие ребра из конкретной A
вершины с:
g.V()\
.hasLabel("A")\
.has("uid", uid)\ # uid is from a variable
.outE("abEdge")\
.inV()\
.toList()
Но как бы я go нашел нахождение B
вершин, которые имеют нет таких ребер из конкретной A
вершины?
Мой инстинкт состоит в том, чтобы попробовать следующее:
# Find B edges without an incoming edge from a particular A vertex
gremlin.V()\
.hasLabel("B")\
.where(__.not_(inE("abEdge").from_(
V()\
.hasLabel("A")\
.has("uid", uid)
)))\
.next()
И это приводит к неправильному запросу (Пока не знаю, где именно) , я все еще читаю о Гремлин, но у меня тоже есть временные ограничения, поэтому я спрашиваю. Если кто-то и может помочь, но просто использует синтаксис groovy
, который тоже подойдет, так как конвертировать между ними не так уж и плохо.
Любые объяснения тоже будут полезны, так как я все еще изучаю эту технологию.
Обновление
Я думаю, если бы это был вопрос из реальной жизни, связанный с этим сайтом. Мы могли бы спросить (A=Person
, B=Programming-Language
и abEdge=knows
):
Какие языки программирования конкретный человек A
не знает?