Azure Cosmos DB: поддерживается конвейер обновлений, или Cosmos-нативный способ эмулировать это? - PullRequest
0 голосов
/ 11 февраля 2020

Мы хотели перейти с использования MongoDB 4.2 на Cosmos DB, но поняли, что нам мешают это обновить (агрегировать) конвейеры. MongoDB поддерживает их, в Cosmos DB мы получаем странную ошибку Expected type object but found array., которая заставляет нас думать, что они не поддерживаются (поскольку вы предоставляете массив этапов обновления, а не документ обновления).

Есть ли способ достичь чего-то похожего с методами Cosmos DB?

Обновление конвейеров в MongoDB позволяет вам обновлять документ за несколько этапов как одна операция atomi c. В настоящее время конвейер выглядит примерно так (система учета запасов с отслеживанием резервирований):

  1. Установите для поля значение и установите для другого поля расчетное значение на основе некоторого ввода и некоторого документа fields
  2. Установите логический флаг в случае, если при вычислении с шага 1 получено 0 или меньше
  3. Установите для параметра DateTime значение NOW, если при вычислении с шага 2 сработало «false»
...