Я пытаюсь установить свойства для вершины в разбитом графике CosmosDB.Если у вершины были какие-либо свойства ранее, я хочу, чтобы они были очищены и заменены новым набором свойств.
Даже удаление было немного сложным, так как «ключ раздела» отображается как свойство, не подлежащее удалению.
g.V('nodeId').has('partitionKey','xx').properties().drop()
-> «Ошибка выполнения запроса Gremlin: свойство раздела не можетбыть удаленным. "
К счастью, id
свойства ключа раздела предсказуемо и может использоваться для его фильтрации:
g.V('nodeId').has('partitionKey','xx')
.properties().not(has('id', 'nodeId|partitionKey'))
.drop()
Теперь я застрял, пытаясь добавитьновые свойства.Я попытался:
g.V('nodeId').has('partitionKey','xx')
.properties().not(has('id', 'nodeId|partitionKey'))
.drop()
.property('a','valA')
.property('b','valB')
, но похоже, что я применяю шаг property()
к (пустому) списку свойств, а не к вершине.Ошибка не очень полезна:
Gremlin Query Compilation Error: Column reference R_200324["_value"] cannot be located in the raw records in the current execution pipeline.
Я пытался применить шаг property()
к вершине (с помощью select
), но я должен что-то делать неправильно:
g.V('nodeId').has('partitionKey','xx')
.as('v')
.properties().not(has('id', 'nodeId|partitionKey'))
.drop()
.select('v')
.property('a','valA')
.property('b','valB')
Это дает ту же ошибку, что и выше.
Я также пробовал .back('v')
вместо .select('v')
, но похоже, что back
не поддерживается в CosmosDB.
Какие-либо предложения?