最も基本的な操作の 1 つは、コレクションのデータを更新することです。 このガイドでは、Mongo シェル (Mongosh) を使ったデータの更新について理解する必要があることをすべて説明します。
updateOne() メソッドの使用
updateOne() メソッドを使うと、指定したフィルターに一致する最初のドキュメントを更新することができます。 メソッドには、
filter: 更新の条件を指定したドキュメント。 filter は、更新する必要があるコレクション内のドキュメントを照合するために使われます。 filter ドキュメントは有効なクエリ ドキュメントである必要があります。
update: 一致するドキュメントに対して実行する更新操作を指定したドキュメント。 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: 更新の条件を指定したドキュメント。 filter は、更新する必要があるコレクション内のドキュメントを照合するために使われます。 filter ドキュメントは有効なクエリ ドキュメントである必要があります。 update: 一致するドキュメントに対して実行する更新操作を指定したドキュメント。 update ドキュメントは有効な更新ドキュメントである必要があります。
db.collection.updateMany(
<filter>,
<update>
)
たとえば、"New York" に住んでいるすべての顧客の名前を更新するには、次のコマンドを使用できます。
db.customers.updateMany(
{ city: "New York" },
{ $set: { name: "Jane Smith" } }
)
上記の例では、db.customers はコレクション名であり、{ city: "New York" } は city フィールドが "New York" と等しいすべてのドキュメントに一致するフィルターであり、{ $set: { name: "Jane Smith" } } は一致したすべてのドキュメントの name フィールドを "Jane Smith" に設定する更新操作です。
また、$inc、$mul、$rename、$unset などの他の更新演算子を使ってデータを更新することもできます。
次のステップ
- Azure Cosmos DB for MongoDB と共に Studio 3T を使用する方法を学習します。
- Azure Cosmos DB for MongoDB と共に Robo 3T を使用する方法を学習します。
- Azure Cosmos DB for MongoDBと共に MongoDB のサンプルを確認します。
- Azure Cosmos DB への移行のための容量計画を実行しようとしていますか? 容量計画のために、既存のデータベース クラスターに関する情報を使用できます。
- 既存のデータベース クラスター内の仮想コアとサーバーの数のみがわかっている場合は、仮想コアまたは vCPU を使用した要求ユニットの見積もりに関するページを参照してください。
- 現在のデータベース ワークロードの標準的な要求レートがわかっている場合は、Azure Cosmos DB Capacity Planner を使用した要求ユニットの見積もりに関するページを参照してください。