駆け出しのエンジニア日記

プログラミング言語勉強中の奮闘日記

Mongooseでデータを更新する

Mongooseでデータを更新する方法を見ていきます。

更新において必要なメソッドは下記の通りです。

・update()

・updateMany()

・updateMany()

注意点としては、これらのメソッドは戻り値としてドキュメントを返しません。

つまり処理の結果のみです。

{ n: 1, nModified: 1, ok: 1 }

上記のようなものが返ってきます。

今回は主に使用頻度が多い、updateMany()とupdateMany()について確認してみましょう。

 

・updateOne()・・・該当する1つのドキュメントを更新します。

 Movie.updateOne({title:'Stand By Me'},{score:9.5}).then(res => console.log(res))

第一引数には「絞り込むためのクエリ」を第二引数には「更新したい値とkey」を入れ

ます。

サンプルで映画の評価を「8.6から9.5」に更新したとします。

データベースを確認すると、無事更新されています。

・updateMany()・・・検索条件で該当する複数のドキュメントを一括更新します。

Movie.updateMany({title:{$in:['Alien','Moonrise Kingdom']}}
,{score:10}).then(res => console.log(res))

また別の映画の評価も複数同時に変更していきます。

成功です。

こちらも評価が更新されています。

 

もう一つよく使うメソッドがあるので紹介します。

・findOneAndUpdate()・・・該当のドキュメントを1つのみ検索し、更新し、該当の

ドキュメントを返します。

Movie.findOneAndUpdate({title:'Alien'}
,{rating:'R-15'}
,{new:true})
     .then(m => console.log(m))

第三引数ではオプションを渡すことができ、「{new:true}」とすることで変更が加わっ

た新しいオブジェクトも取得できます。