更新 Cosmos DB for MongoDB 中的数据

重要

你是否正在寻找一种数据库解决方案,以应对需要高扩展性、99.999% 可用性服务级别协议(SLA)、即时自动扩展和跨多个区域的自动故障转移的场景? 请考虑使用 Azure Cosmos DB for NoSQL

最基本的操作之一是更新集合中的数据。 在本指南中,我们将介绍使用 Mongo Shell (Mongosh) 更新数据时需要了解的所有内容。

使用 updateOne() 方法

updateOne() 方法更新与指定筛选器匹配的第一个文档。 该方法采用以下两种参数:

filter:一个指定更新条件的文档。 此筛选器用于匹配集合中应更新的文档。 筛选器文档必须是有效的查询文档。

update: 一个文档,指定要对匹配文档执行的更新操作。 更新文档必须是有效的更新文档。

db.collection.updateOne(
   <filter>,
   <update>
)

例如,若要更新 _id 等于 1 的客户的名称,可以使用以下命令:

db.customers.updateOne(
   { _id: 1 },
   { $set: { name: "Jane Smith" } }
)

在上面的示例中,db.customers 是集合名称,{ _id: 1 } 是匹配第一个 _id 等于 1 的文档的筛选器,{ $set: { name: "Jane Smith" } } 是更新操作,它将匹配文档的名称字段设置为“Jane Smith”。

还可以使用其他更新运算符(如 $inc、$mul、$rename、$unset 等)来更新数据。

updateMany() 方法

updateMany() 方法更新与指定筛选器匹配的所有文档。 该方法采用以下两种参数:

filter:一个指定更新条件的文档。 此筛选器用于匹配集合中应更新的文档。 筛选器文档必须是有效的查询文档。 update: 一个文档,指定要对匹配文档执行的更新操作。 更新文档必须是有效的更新文档。

db.collection.updateMany(
   <filter>,
   <update>
)

例如,若要更新居住在“New York”的所有客户的姓名,可以使用以下命令:

db.customers.updateMany(
   { city: "New York" },
   { $set: { name: "Jane Smith" } }
)

在上面的示例中,db.customers 是集合的名称,{ city: "New York" } 是用于筛选的条件,它匹配所有城市字段为 "New York" 的文档,而 { $set: { name: "Jane Smith" } } 是更新操作,将所有匹配文档的 name 字段设置为 "Jane Smith"。

还可以使用其他更新运算符(如 $inc、$mul、$rename、$unset 等)来更新数据。

后续步骤

  • 了解如何将 Studio 3T 与 Azure Cosmos DB for MongoDB 配合使用。
  • 了解如何将 Robo 3T 与 Azure Cosmos DB for MongoDB 配合使用。
  • 使用 Azure Cosmos DB for MongoDB 浏览 MongoDB 示例
  • 尝试为迁移到 Azure Cosmos DB 进行容量规划? 可以使用有关现有数据库群集的信息进行容量规划。
    • 如果你只知道现有数据库群集中的 vCore 和服务器数量,请阅读根据 vCore 或 vCPU 数量估算请求单位数
    • 如果知道当前数据库工作负载的典型请求速率,请阅读有关使用 Azure Cosmos DB 容量规划工具估计请求单位的信息。