Запрос Гремлин, чтобы получить список вершин, не связанных с какой-либо другой вершиной? - PullRequest
0 голосов
/ 17 октября 2018

Я попробовал что-то вроде этого g.traversal (). V (). HasLabel (labelName) .where (__. BothE (). Count (). Is (0)). ToList ();это не работает

1 Ответ

0 голосов
/ 17 октября 2018

Я не понимаю, почему ваш подход не сработает - вот пример графика, и, как вы можете видеть, он возвращает правильный ответ:

gremlin> g.addV('person').property('name','marko').as('m').
......1>   addV('person').property('name','stephen').as('s').
......2>   addV('person').property('name','alice').as('a').
......3>   addE('knows').from('m').to('s').iterate()
gremlin> g.V().where(bothE().count().is(0)).valueMap()
==>[name:[alice]]

Возможно, вам следует проверить свои данные более внимательно, чтобы бытьуверен, что он содержит структуру, которую вы ожидаете.В то время как ваш путь работал, я думаю, что я бы использовал этот подход:

gremlin> g.V().where(__.not(bothE())).valueMap()
==>[name:[alice]]

Таким образом, вы не заставляете count() всех ребер обнаруживать существование ребра, когда вы просто ищетеотсутствие каких-либо краев.

...