MongoDB の「db.collection.updateOne()」メソッドとは何ですか?
” db.collection.updateOne() 」メソッドは、定義された基準に一致する単一のドキュメントを更新します。複数のドキュメントが基準に一致する場合、最初のドキュメントのみが変更されます。 「」などの更新演算子と一緒に使用できます。 $set ”、” $inc ' と もっとたくさん 。
MongoDB で「db.collection.updateOne()」メソッドを使用するにはどうすればよいですか?
” db.collection.updateOne() 」メソッドを利用すると、選択基準に一致する 1 つのドキュメントの 1 つのフィールドだけでなく、複数のフィールドも更新できます。さらに、このメソッドはドキュメントにフィールドを追加することもでき、更新演算子とともに使用することもできます。 「」の構文 db.collection.updateOne() 」の方法を以下に示します。
基本的な構文
db.collection.updateOne ( { フィルター基準 } 、 { アップデート } 、 { オプション } )
上記の構文では次のようになります。
- このメソッドは、選択基準を満たす最初のドキュメントを更新します。
- ” フィルター基準 」は更新の基準を定義します
- ” アップデート 」には、ドキュメント内で変更されるフィールドが含まれています
- ” オプション ” 引数は、このメソッドの動作を変更するオプションの引数です。たとえば、” アップサート ' と ' ヒント 」
この投稿では、「」を使用します。 Linuxhint_Col2 「」の動作を実証するためのコレクションの文書 db.collection.updateOne() ' 方法。このコレクションに保存されているドキュメントを表示するには、指定されたコマンドを実行します。
db.Linuxhint_Col2.find ( )
出力
出力では、「」に保存されているすべてのドキュメントが取得されました。 Linuxhint_Col2 』コレクション。
例 1: 単一フィールドを更新する
ドキュメント内の単一フィールドを更新するには、その選択基準を定義し、その基準を更新します。更新基準は、更新演算子を使用して定義できます。クエリを実行して「 モデリング_料金 「」フィールドから「」 18000 ' どこ ' 苗字 「オブジェクトが等しい」 デップ 」 文書内:
出力
出力では成功メッセージが返されました。
加えられた変更を確認するには、この「 探す() ' 指図:
db.Linuxhint_Col2.find ( { 「モデル名.姓」 : 「デップ」 } ) 出力
出力により、ドキュメントが正常に更新されたことが確認されました。
例 2: 「db.collection.updateOne()」メソッドを使用して新しいフィールドを追加する
” db.collection.updateOne() ” メソッドは、” を使用して新しいフィールドを追加します。 $set ” 演算子がまだ存在しない場合は、ドキュメント内に追加します。 「」として 経験 「」フィールドは、「」が含まれる文書には存在しません。 モデリング_料金 ' よりも少ない ' 9000 ”。
新しいフィールドを追加しましょう。 経験 ” の値は” 初心者 」が文書内で「 モデリング_料金 ' よりも少ない ' 9000 ” このクエリを使用して:
db.Linuxhint_Col2.updateOne ( { 「モデリング_料金」 : { $lt : 9000 } } 、 { $set : { '経験' : '初心者' } } ) 出力
出力では、1 つのドキュメントが選択基準に一致し、正常に変更されたことを示すメッセージが返されます。
コレクション内にあるすべての文書を取得してそれを確認してみましょう。」 Linuxhint_Col2 ”:
db.Linuxhint_Col2.find ( ) 出力
出力には、条件を満たす 1 つのドキュメントが変更され、新しいフィールドが正常に挿入されたことが示されています。
例 3: 「db.collection.updateOne()」メソッドを使用してドキュメントの複数のフィールドを更新する
ユーザーは 1 つのドキュメント内の複数のフィールドを変更することもできます。ここで、以下に示すクエリは、「」が含まれるドキュメントの姓と年齢を変更します。 ファーストネーム 「と等しい」 ノア 「:
出力
クエリはエラーなしで実行されました。
変更を確認するには、「find()」メソッドを使用して、「 ファーストネーム 「と等しい」 ノア :
db.Linuxhint_Col2.find ( { 「モデル名.名」 : 「ノア」 } ) 出力
出力では、変更されたドキュメントが正常に返されました。
例 4: 更新演算子で「db.collection.updateOne()」メソッドを使用する
前の例と同様に、「」を使用しました。 $set ” 更新演算子を使用して、” の値を変更します。 db.collection.updateOne() ' 方法。別の更新演算子を使用してみましょう。 $inc 」を実行すると、フィールドが指定された量だけインクリメントされます。
以下に示すクエリでは、メソッドは「」が含まれるドキュメントを検索します。 ファーストネーム 「と等しい」 ケイト 」と付け加えます。 1000 ' の中に ' モデリング_料金 ” フィールドの値:
db.Linuxhint_Col2.updateOne ( { 「モデル名.名」 : 「ケイト」 } 、 { $inc : { モデリング料金: 1000 } } ) 出力
出力では成功メッセージが返されました。
変更を確認するには、「 探す() 」メソッドを使用して、影響を受けるドキュメントを取得します。
db.Linuxhint_Col2.find ( { 「モデル名.名」 : 「ケイト」 } ) 出力
出力には、「」の変更された値が表示されます。 モデリング_料金 ”。
例 5: 「upsert」引数を使用して新しいドキュメントが存在しない場合に追加する
オプションの引数を使用して、このメソッドの動作を変更できます。そのようなオプションの 1 つが「 アップサート 」は、クエリで定義された選択基準を満たす既存のドキュメントがない場合に新しいドキュメントを追加します。
既存のドキュメントを満たさない選択基準を定義して、新しいドキュメントを追加してみましょう。その後、いくつかのフィールドを設定し、オプション「 アップサート 以下のコマンドに示されているように、「true」となります。
db.Linuxhint_Col2.updateOne ( { 「モデル名.名」 : 「デビッド」 } 、 { $set : { モデリング料金: 10000 、モデル_年齢: 23 、 「モデル名.姓」 : 「スミス」 } } 、 { アップサート: 真実 } ) 出力
出力には、確認応答メッセージが true として表示されました。
最後に、次のコマンドを実行して変更を確認します。
db.Linuxhint_Col2.find ( { 「モデル名.名」 : 「デビッド」 } ) 出力
出力には、新しいドキュメントが正常に追加されたことが示されています。
結論
” db.collection.updateOne() MongoDB の 」メソッドは、選択基準を満たす最初のドキュメントを更新するために使用されます。 「」などの更新演算子を使用して、ドキュメント内の単一フィールドだけでなく複数のフィールドも変更できます。 $set ' と ' $inc ”。さらに、このメソッドは、メソッドの動作を変更するためのオプションの引数も受け入れます。 アップサート 」を選択すると、選択基準が既存のドキュメントに一致しない場合に新しいドキュメントが追加されます。この投稿では「」の使用法について説明しました。 db.collection.updateOne() MongoDB の「メソッド」。