重要
你是否正在寻找一种数据库解决方案,以应对需要高扩展性、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" } } 是将匹配文档的 name 字段设置为“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" } 是匹配所有城市字段等于“纽约”的文档的筛选器,并且 { $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 容量规划工具估计请求单位的信息。