Пример базы данных: TinkerPop Modern
Цель : Найти людей, которые не разработали Программное обеспечение.
т. Тип вершины "Персона", который напрямую не связан с типом вершины "Программное обеспечение"
Лицо, подключенное к программному обеспечению [Работы]
g.V().hasLabel("Person").as("from")
.project("title", "node")
.by(select("from").unfold().values("name").fold())
.by(select("from").unfold().label().fold())
Найти человека, не подключенного к программному обеспечению [Не работает]
g.V().hasLabel("Person").as("from")
.filter(both().not(hasLabel("Software")))
.project("title", "node")
.by(select("from").unfold().values("name").fold())
.by(select("from").unfold().label().fold())
Я считаю, что игнорирование ребра, которое не удовлетворяет условию, но не пропускает вершину.
Пытался сделать цикл, но не нашел пример для этого.
Эквивалент Cypher Query (только для справки): MATCH (n: People) WHERE NOT (n) - (: Software) RETURN n
Пример базы данных: