Пример данных: TinkerPop Modern
Резюме: я хочу найти людей, которые создали 2 программного обеспечения.
Я начал с основ и правильно подсчитал
g.V().hasLabel("Person").as("from" ,"to1" )
.repeat(bothE().as("e1").otherV().as("to1").dedup("from", "to1")).times(1)
.emit(filter(hasLabel("Software"))).hasLabel("Software")
.group().by(select("from").by("name")).by(count()).as("c")
Результат:
>> {'Marko': 1, 'Peter': 1, 'Josh': 2}
Итак, я попытался применить фильтр, но он не работает (т.е. результат неверен), что я пытался:
g.V().hasLabel("Person").as("from")
.repeat(bothE().as("e1").otherV().as("to1").dedup("from", "to1")).times(1)
.filter(bothE().otherV().hasLabel("Software").count(local).is(eq(1)))
.dedup()
.values("name")
Есть идеи, что я делаю не так?
Пример данных: