Как вернуться к вершине после вызова свойств - PullRequest
0 голосов
/ 10 декабря 2018

После установки URL я хочу вернуться к своей вершине, чтобы добавить больше свойств, как я могу это сделать?

g.addV('Site')
.property(list, 'name', 'stackoverflow')
.properties('name')
.hasValue('stackoverflow')
.property('url', 'https://stackoverflow.com')

Редактировать: Найдено, как это сделать с помощью gremlin, но это не работаетна cosmosdb

g.addV('Site')
.property(list, 'name', 'stackoverflow')
.properties('name')
.hasValue('stackoverflow')
.property('url', 'https://stackoverflow.com')
.next()
.element()

Кто-нибудь знает какой-либо другой способ добиться того же на cosmosdb?

1 Ответ

0 голосов
/ 10 декабря 2018

Вы на самом деле не можете использовать next() в некотором смысле, потому что next() повторяет обход, возвращая результат, и поэтому вы выходите за пределы API Gremlin в этой точке.Если у вас нет экземпляра Graph, встроенного в ту же JVM, элемент графика, возвращаемый из next(), будет "отсоединен" и, следовательно, неизменен.

Тем не менее, стоит отметить, что, вызывая property(list, 'name','stackoverflow'), вы на самом деле не оставляете Vertex traverser, так что вы можете просто записать property() вызовы непосредственно после него:

g.addV('Site').
  property(list, 'name', 'stackoverflow').
  property('url', 'https://stackoverflow.com')

Теперь, если я воспринимаю ваш Gremlin буквально, то, что вы там делаете, создает свойство «name», затем находит это свойство и добавляет к нему мета-свойство «url», а затем спрашивает, как вернуться к исходной родительской вершине, потому чтов этот момент вы на самом деле возвращаете VertexProperty.Ну, во-первых, обратите внимание, что вы можете установить мета-свойство более прямо и избежать вызова на properties() все вместе:

g.addV('Site').
  property(list, 'name', 'stackoverflow', 'url', 'http://stackoverflow.com')
...