MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

【初心者向け】MongoDBで条件付き更新(update)を行う方法を徹底解説

MongoDBで条件付き更新を行う基本

MongoDBで条件に一致するドキュメントだけを更新したい場合には、update()メソッドを使用します。この記事では、実際のコード例を通して、条件付き更新の基本的な流れをわかりやすく解説します。

1. サンプルコレクションの作成

まずは、ドキュメントを格納するコレクションを作成しましょう。以下ではinsertOne()メソッドを使って、3件のドキュメントを登録しています。

> db.demo402.insertOne({id:101,"Name":"Chris"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e61214efac4d418a0178585")
}
> db.demo402.insertOne({id:102,"Name":"David"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e612150fac4d418a0178586")
}
> db.demo402.insertOne({id:103,"Name":"Mike"});
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5e612152fac4d418a0178587")
}

2. 登録したドキュメントの確認

find()メソッドを使うと、コレクション内のすべてのドキュメントを表示できます。

> db.demo402.find();

実行すると、次のような出力が得られます。

{ "_id" : ObjectId("5e61214efac4d418a0178585"), "id" : 101, "Name" : "Chris" }
{ "_id" : ObjectId("5e612150fac4d418a0178586"), "id" : 102, "Name" : "David" }
{ "_id" : ObjectId("5e612152fac4d418a0178587"), "id" : 103, "Name" : "Mike" }

3. 条件付き更新クエリの実行

ここからが本題です。以下のクエリでは、id:102という条件に一致するドキュメントを対象に、$set演算子で「Name」フィールドを「Robert」へ更新しています。さらにupsert: trueオプションを指定することで、条件に一致するドキュメントが存在しなかった場合には新しいドキュメントが自動的に挿入されます。

> db.demo402.update({id:102},
... {
...     $set: { Name: "Robert" }
... },
... {upsert: true }
... )
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

実行結果のnMatched: 1は条件に一致したドキュメントが1件、nModified: 1は実際に更新されたドキュメントが1件であることを示しています。

4. 更新結果の確認

もう一度find()メソッドを実行して、更新が正しく反映されているか確認しましょう。

> db.demo402.find();

出力を見ると、idが102のドキュメントの「Name」フィールドが「David」から「Robert」に変更されていることがわかります。

{ "_id" : ObjectId("5e61214efac4d418a0178585"), "id" : 101, "Name" : "Chris" }
{ "_id" : ObjectId("5e612150fac4d418a0178586"), "id" : 102, "Name" : "Robert" }
{ "_id" : ObjectId("5e612152fac4d418a0178587"), "id" : 103, "Name" : "Mike" }

まとめ

MongoDBで条件付き更新を行うには、第1引数に検索条件、第2引数に$setなどの更新演算子を指定したupdate()メソッドを使います。upsertオプションを組み合わせれば、「存在しなければ挿入、存在すれば更新」という柔軟な処理も実現できます。なお、最新バージョンのMongoDBでは、単一ドキュメントの更新にはupdateOne()、複数ドキュメントの更新にはupdateMany()の使用が推奨されている点にも留意しておきましょう。

  1. Xcodeのアップデート方法を徹底解説!App Storeから最新版へ更新する手順

    XcodeはApple公式の統合開発環境(IDE)ですが、意外なことに、新しいバージョンがリリースされてもアプリ自体が通知してくれることはありません。「Xcodeなら更新のお知らせくらい出してくれるだろう」と思うのは間違いなのです。 この記事では、Xcodeを最新バージョンに更新する具体的な手順と、更新時に注意すべきポイントをわかりやすく解説します。 Xcodeの更新はApp Storeから行う なぜかは不明ですが、Xcodeを更新するにはまずMac App Storeを開く必要があります。Xcodeのアプリ内から直接アップデートすることはできないため、必ずApp Store経由で行いましょう

  2. Discordのアップデート方法|Windows・Androidでの更新手順と更新されないときの対処法

    Discordは、ゲームにおけるチームコミュニケーションに変革をもたらしたことで注目を集める、最も人気のあるコミュニケーションアプリの一つです。ほとんどのゲーマーがこのアプリを知っており、仲間とのやり取りに活用しています。Discordには複数のバージョンが存在し、アップデートのたびに新しい機能や便利な機能が追加されます。そのため、常に最新の状態に保つことが重要です。Windows PCやAndroidスマートフォンでDiscordをアップデートする方法をお探しの方は、ぜひこのガイドをご覧ください。手動でアップデートすれば、最新機能や最適化を引き続き楽しめます。さらに本記事では、「Discor