前回、MongoDBコンポーネントでデータを追加する方法を紹介しました。今回は既存のデータの更新方法を紹介します。
データの置き換え
MongoDBへの接続情報とMongoDBのデータは前回と同じものを使います。
今回は田中さんのデータを置き換えましょう。
フローはMongoDBPutコンポーネントだけで十分です。「実行する処理」プロパティを「Replace」に設定し、「クエリー」のところに田中さんのデータを検索するJSON文字列を入力して、そして「更新用JSON」に新しいデータを入力します。
フローを実行すると、田中さんのデータが置き換えられて、吉田さんのデータになります。
データの更新
データの一部だけを更新するのも簡単です。先ほどの吉田さんの点数を73点に更新しましょう。
大体置き換え処理と同じですが、「実行する処理」を「Update」に設定して、「更新用JSON」に更新したいデータだけを入力すればOKです。
実行すると、吉田さんの点数だけが73点になります。
データの複数更新も簡単です。ここでは、女性全員の点数を5点プラスしましょう。
「複数更新」を「はい」に設定すると、クエリーにマッチするすべてのデータが更新されます。フロー実行すると次のように女性全員の成績が変わりました。
ちなみに、「複数更新」を「いいえ」にした場合、クエリーにマッチしたデータの一番先頭である高橋さんのデータだけが更新されます。
データのUpsert
データが存在するなら更新、存在しないなら追加、こういうケースはよくありますよね。
例として、もう一回上記の吉田さんの更新処理を行ってみましょう。
「実行する処理」を「Update/Insert」に設定してください。存在しないデータを検索するため、クエリーに「{"name": "吉田", "score":83}」入力します。他は先の更新処理と同じように指定します。
このフローを実行したらどうなるでしょうか。
お分かりになったでしょうか?「{"name": "吉田", "score":83}」というデータがありませんので自動的にMongoDBに追加され、さらに「{"$set":{"score":73}}」の更新処理が実行されました。
クエリーにマッチするデータが存在する場合、この処理は更新処理と同じ動作になります。
データの削除
削除処理では、MongoDBからクエリーにマッチするデータを削除することができます。
先ほど性別のないデータを入れたので、それを削除しましょう。
「実行する処理」を「Delete」に設定して、クエリーに性別のないデータを検索するJSONを入力します。「複数更新」が「はい」の場合は全部の検索結果を削除し、「いいえ」の場合はクエリーにマッチしたデータの一番先頭のデータだけを削除します。
このフローを実行すると、2番目の吉田さんのデータは消えました。
MongoDBの既存データに対して、さまざまな操作を行う方法は以上のようになります。次回はデータを取得する方法を紹介します。
それでは、また。