首页 > 解决方案 > Azure Cosmos DB:支持更新管道,还是 Cosmos 本机方式来模拟?

问题描述

我们想从使用 MongoDB 4.2 切换到 Cosmos DB,但意识到阻止我们这样做的是更新(聚合)管道。MongoDB 支持它们,在 Cosmos DB 上,我们收到一个看起来很奇怪的错误Expected type object but found array.,提示我们相信它们不受支持(因为您提供了一系列更新阶段而不是更新文档)。

有没有办法用 Cosmos DB 方法实现类似的东西?

MongoDB 中的更新管道允许您将具有多个步骤的文档作为一个原子操作来更新。管道目前看起来有点像这样(跟踪预订的库存系统):

  1. 将一个字段设置为一个值,并将另一个字段设置为基于某些输入和某些文档字段的计算值
  2. 设置一个布尔标志,以防第 1 步的计算结果为 0 或更少
  3. 将 DateTime 标志设置为 NOW,以防第 2 步的计算触发“假”

标签: azure-cosmosdbazure-cosmosdb-mongoapi

解决方案


推荐阅读