Перемещайте документы между коллекциями в ArangoDB

Есть ли простой способ перемещать документы между коллекциями в ArangoDB? Я попробовал дешевый подход, чтобы просто изменить _id, но опасался, что это не должно быть сделано или возможно:

FOR i IN collection_A
UPDATE { _key: i._key, _id: CONCAT('collection_B/',i._key) } IN collection_A

Существуют ли полезные способы перемещения документа из collection_A в collection_B с помощью AQL?


person Qohelet    schedule 20.09.2019    source источник


Ответы (3)


Вы можете попробовать что-то вроде

FOR i IN collection_A
    LET i_b = UNSET(i, "_id") // Remove the id that is not valid before insert
    INSERT i_b INTO collection_B
    REMOVE i IN collection_A
person darkheir    schedule 27.09.2019
comment
С удовольствием проголосуйте, так как это рабочий код, который помогает. Тем не менее, мне довольно любопытно, есть ли более быстрый или более эффективный способ - person Qohelet; 03.10.2019

Просто сделайте вставку вместо обновления Для I в коллекцию_A Вставьте в коллекцию_B

person camba1    schedule 23.09.2019
comment
Речь идет об эффективности. Если есть способы сделать это с минимальными изменениями - person Qohelet; 23.09.2019

https://www.arangodb.com/docs/stable/aql/examples-data-modification-queries.html#copying-data-from-one-collection-into-other

FOR u IN collection_A
   INSERT u IN collection_B
person Borislav Markov    schedule 14.10.2020