Я хотел бы удалить определенные вершины из моего графика Нептуна. Я получаю список идентификаторов из-за пределов Neptune и хочу удалить их все. Проблема в том, что некоторые из них могут не существовать.
Я пробовал это, но, похоже, я не могу передать массив:
g.V(['1', '12', '14']).drop().iterate()
Я также пытался связать операции одиночного сброса вместе с store, агрегатом или sideEffect, но как только одна из вершин не существует, вызов ничего не удаляет...
g.addV('test').property(id, '1')
.addV('test').property(id, '12')
g.V('1').aggregate('x')
.V('12').aggregate('x')
.V('13').aggregate('x')
.select('x').unfold().drop()
(Я могу пройтись по списку и составить запрос вместе, но, конечно, это никогда не работает сV('1').drop().V('12).drop()
)
Я использую машинописный текст вокруг кода гремлина.
Нептун работает с гремлином: {'версия': 'tinkerpop-3.4.11'}
Ваш первый подход — это правильный способ написать свой обход — передача List
из id
должна работать:
g.V(['1', '12', '14']).drop().iterate()
в качестве альтернативы вы можете сделать любое из следующего (и другие варианты):
g.V('1', '12', '14').drop().iterate()
g.V().hasId('1', '12', '14').drop().iterate()
g.V().hasId(within['1', '12', '14']).drop().iterate()
Однако все они должны равняться первому.
Мне не удалось воспроизвести то, что вы видите, только с помощью Gremlin — я также попробую клиент Javascript, просто чтобы убедиться, но, как отмечает Стивен ниже, ваш Gremlin выглядит нормально.