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

既存のMongoDBドキュメントにリストやオブジェクト型のフィールドを追加する方法

既存のMongoDBドキュメントに、オブジェクト型や配列(リスト)型など特定のデータ型を持つ新しいフィールドを追加したい場合、$set 演算子を使用します。$set は指定したフィールドが存在しない場合は新しく作成し、すでに存在する場合は値を更新してくれるため、フィールドの追加にも最適です。

1. コレクションとドキュメントの作成

まず、insertOne() メソッドを使ってサンプルのコレクションを作成します。

> db.demo732.insertOne({_id:1,Language:"English"});
{ "acknowledged" : true, "insertedId" : 1 }
> db.demo732.insertOne({_id:2,Language:"Hindi"});
{ "acknowledged" : true, "insertedId" : 2 }

2. ドキュメントの確認

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

> db.demo732.find();

このクエリを実行すると、次のような出力が得られます。

{ "_id" : 1, "Language" : "English" }
{ "_id" : 2, "Language" : "Hindi" }

3. $set を使ったフィールドの追加

ここで、既存のドキュメントに対して、オブジェクト型のフィールド「details」と、配列(リスト)型のフィールド「studentDetails」を同時に追加してみます。

> db.demo732.update({_id:1},
... { $set:{details:{'subjectName':"MongoDB"}, studentDetails:[{Name:"David"},{CountryName:"US"}]}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

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

4. 追加結果の確認

再度 find() メソッドを実行して、フィールドが正しく追加されたか確認します。

> db.demo732.find();

出力は次のようになります。

{ "_id" : 1, "Language" : "English", "details" : { "subjectName" : "MongoDB" }, "studentDetails" : [ { "Name" : "David" }, { "CountryName" : "US" } ] }
{ "_id" : 2, "Language" : "Hindi" }

_id: 1 のドキュメントにのみ、オブジェクト型の「details」と配列型の「studentDetails」が追加されていることがわかります。このように $set 演算子を使えば、ネストされたオブジェクトや配列を含む任意のデータ型のフィールドを、既存ドキュメントに簡単に追加できます。

  1. 特定のフィールドが存在しないMongoDBドキュメントを取得する方法

    MongoDBでは、$exists演算子を使用して特定のフィールドの有無を確認できます。ドキュメント内に目的のフィールドが存在しない場合、そのドキュメントをfind()やアグリゲーション(集計)パイプラインで取得して表示することが可能です。本記事では、配列内のサブドキュメントに特定のフィールド(例:Age)が含まれていないドキュメントを抽出する方法を、具体的なサンプルコードとともに解説します。サンプルコレクションの作成まず、ドキュメントを含むコレクションを作成しましょう。以下の例では、demo612というコレクションにドキュメントを挿入しています。> db.demo612.insertO

  2. JavaでArrayListの指定した位置に要素を挿入する方法を解説

    JavaのArrayListクラスに用意されているadd()メソッドを使うと、リストに要素を追加できます。このメソッドには、以下の2つのバリアント(オーバーロード)が存在します。add(E e) ― 引数としてオブジェクト(要素)を受け取り、その要素をリストの末尾に追加します。public void add(int index, E element) ― 挿入したい要素と、挿入位置を表す整数値(インデックス)を受け取ります。指定された位置に要素を挿入し、それまでその位置にあった要素や後続の要素はすべて右に1つずつシフトされます(インデックスが1つずつ増えます)。つまり、インデックスを引数に取る