(отредактировано из оригинала)
Согласно документации:
Каждая операция UPDATE ограничена одной коллекцией, и имя коллекции не должно быть динамическим.Только один оператор UPDATE для каждой коллекции разрешен для каждого запроса AQL, и за ним не могут следовать операции чтения или записи, которые обращаются к той же коллекции, операции обхода или функции AQL, которые могут читать документы.
Чтобы инициировать транзакцию, вам нужно сделать это явно .
В ArangoDB нет отдельных команд транзакций BEGIN, COMMIT или ROLLBACK.Вместо этого транзакция в ArangoDB запускается путем предоставления описания транзакции функции JavaScript db._executeTransaction:
db._executeTransaction(description);
Например:
db._executeTransaction({
collections: {
write: [ "users", "logins" ],
read: [ "recommendations" ]
}
});
Итак, чтобыЧтобы ответить на вопрос, вам нужно использовать клиентскую библиотеку для запуска транзакции, поскольку это не произойдет автоматически.
При этом основное преимущество баз данных документов / графиков заключается в возможности горизонтального масштабирования, сегментирования и кластеризации.,Если вам абсолютно необходимо полагаться на транзакции, вы можете переосмыслить, почему вы используете базу данных на основе документов. Возможная согласованность обычно достаточно для многих случаев использования, но в других случаях вам абсолютно необходимо ACID .Блог , вероятно, не нуждается в ACID.