Azure cosmosdb 当另一个属性更改时,如何更新CosmosDB/DocumentDB中许多文档的一些属性?

Azure cosmosdb 当另一个属性更改时,如何更新CosmosDB/DocumentDB中许多文档的一些属性?,azure-cosmosdb,Azure Cosmosdb,我有一个购物车文档和客户添加到购物车的产品列表。这些文件保存在宇宙数据库中 还有一份文件详细介绍了2000年的产品。产品名称通常会更新。例如,该名称可以从Apple更改为iPhone 10。由于该更改,购物车中的产品名称也需要更改以反映更改 如何使用新的pdocut名称高效地更新许多客户的购物车文档?我认为您需要重新审视保存文档的方式。这确实不是最佳解决方案 我建议您使用嵌套数组将所有内容存储在单个文档中。这里有一个关于的很好的例子。首先,我必须说,您的数据是如此密切相关,您应该使用关系数据库。

我有一个购物车文档和客户添加到购物车的产品列表。这些文件保存在宇宙数据库中

还有一份文件详细介绍了2000年的产品。产品名称通常会更新。例如,该名称可以从Apple更改为iPhone 10。由于该更改,购物车中的产品名称也需要更改以反映更改


如何使用新的pdocut名称高效地更新许多客户的购物车文档?

我认为您需要重新审视保存文档的方式。这确实不是最佳解决方案


我建议您使用嵌套数组将所有内容存储在单个文档中。这里有一个关于

的很好的例子。首先,我必须说,您的数据是如此密切相关,您应该使用关系数据库。Cosmos DB SQL API是一个非关系数据库,数据之间的关系相对松散。当一列更改时,很难更改其他列的数据

由于您的计划已经确定,如果
产品名称
发生更改,您需要更新包含
产品名称
列的所有相关其他数据。或者你可以考虑调整你的数据结构。例如,如果产品名称将持续更改,则可以将产品信息保存为主要数据,将购物车信息保存为产品中的子嵌套数组

比如:

{
   "customer":"1000",
   "products":[
      {
         "Product":"2000",
         "Name":"iPhone 10"
      }
   ]
}
{
   "productId":"1",
   "Name":"iphone",
   "shopping cart":[
      {
         "customerId":"1000",
         "count":"1"
      },
      {
         "customerId":"2000",
         "count":"2"
      }
   ]
}