MongoDBの既存のデータの更新方法

前回、MongoDBコンポーネントでデータを追加する方法を紹介しました。今回は既存のデータの更新方法を紹介します。

データの置き換え

MongoDBへの接続情報とMongoDBのデータは前回と同じものを使います。

mongo31.png

今回は田中さんのデータを置き換えましょう。

mongo32.png

フローはMongoDBPutコンポーネントだけで十分です。「実行する処理」プロパティを「Replace」に設定し、「クエリー」のところに田中さんのデータを検索するJSON文字列を入力して、そして「更新用JSON」に新しいデータを入力します。

フローを実行すると、田中さんのデータが置き換えられて、吉田さんのデータになります。

mongo33.png

データの更新

データの一部だけを更新するのも簡単です。先ほどの吉田さんの点数を73点に更新しましょう。

mongo34.png

大体置き換え処理と同じですが、「実行する処理」を「Update」に設定して、「更新用JSON」に更新したいデータだけを入力すればOKです。

実行すると、吉田さんの点数だけが73点になります。

mongo35.png

データの複数更新も簡単です。ここでは、女性全員の点数を5点プラスしましょう。

mongo36.png

「複数更新」を「はい」に設定すると、クエリーにマッチするすべてのデータが更新されます。フロー実行すると次のように女性全員の成績が変わりました。

mongo37.png

ちなみに、「複数更新」を「いいえ」にした場合、クエリーにマッチしたデータの一番先頭である高橋さんのデータだけが更新されます。

データのUpsert

データが存在するなら更新、存在しないなら追加、こういうケースはよくありますよね。

例として、もう一回上記の吉田さんの更新処理を行ってみましょう。

mongo38.png

「実行する処理」を「Update/Insert」に設定してください。存在しないデータを検索するため、クエリーに「{"name": "吉田", "score":83}」入力します。他は先の更新処理と同じように指定します。

このフローを実行したらどうなるでしょうか。

mongo39.png

お分かりになったでしょうか?「{"name": "吉田", "score":83}」というデータがありませんので自動的にMongoDBに追加され、さらに「{"$set":{"score":73}}」の更新処理が実行されました。

クエリーにマッチするデータが存在する場合、この処理は更新処理と同じ動作になります。

データの削除

削除処理では、MongoDBからクエリーにマッチするデータを削除することができます。

先ほど性別のないデータを入れたので、それを削除しましょう。

mongo310.png

「実行する処理」を「Delete」に設定して、クエリーに性別のないデータを検索するJSONを入力します。「複数更新」が「はい」の場合は全部の検索結果を削除し、「いいえ」の場合はクエリーにマッチしたデータの一番先頭のデータだけを削除します。

このフローを実行すると、2番目の吉田さんのデータは消えました。

mongo311.png

MongoDBの既存データに対して、さまざまな操作を行う方法は以上のようになります。次回はデータを取得する方法を紹介します。

それでは、また。

この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

他のキーワードで検索する