Gremlin код для поиска 1 вершины с определенным свойством - PullRequest
0 голосов
/ 18 октября 2019

Я хочу вернуть узел, в котором у узла есть свойство как определенный uuid, и я просто хочу вернуть один из них (может быть несколько совпадений).

g.V().where('application_uuid', eq(application_uuid).next()

Будет ли приведенный выше запрос возвращать все узлы? Как мне просто вернуть 1?

Я также хочу получить карту свойств этого узла. Как бы я это сделал?

Ответы [ 2 ]

0 голосов
/ 18 октября 2019

Это очень простой запрос. Вы должны прочитать больше о Гремлине. Я могу предложить Практическая Гремлин книга. Что касается вашего запроса, вы можете использовать has для фильтрации по свойству и limit для получения определенного количества результатов:

g.V().has('application_uuid', application_uuid).limit(1).next()

Выполнение запроса без limit также вернет один результаттак как результат запроса является итератором. Использование toList() вернет все результаты в массиве.

0 голосов
/ 18 октября 2019

Вы бы просто сделали:

g.V().has('application_uuid', application_uuid).next()

, но еще лучше была бы подпись, включающая метку вершины (если вы можете):

g.V().has('vlabel', 'application_uuid', application_uuid).next()

Возможно, пойдем немного дальше, есливам явно нужен только один, который вы могли бы:

g.V().has('vlabel', 'application_uuid', application_uuid).limit(1).next()

, чтобы и поставщик графов, и / или Gremlin Server знали, что ваша цель состоит в том, чтобы только next() вернуть один результат. Таким образом, вы можете сэкономить дополнительный сетевой трафик / обработку.

...