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

MongoDBで階層構造のJSONドキュメントを作成する方法

MongoDBはドキュメント指向データベースであり、JSONに似たBSON形式でデータを保存します。フィールドの中にオブジェクト(サブドキュメント)や配列をネストすることで、階層構造を持つJSONのようなドキュメントを簡単に作成できます。

以下の構文を使用して、MongoDBで階層構造のJSONドキュメントを作成します。

db.demo716.insertOne(
   {
      yourFieldName1,
      yourFieldName2,
      .
      .
      N,
      "fieldName": {
         yourFieldName1,
         yourFieldName2,
         .
         .
         N,
         "fieldname":
         [
            {
               yourFieldName1,
               yourFieldName2,
               .
               .
               N
            }
         ]
      }
   }
);

コレクションにドキュメントを作成する

それでは、実際にドキュメントを含むコレクションを作成してみましょう。次の例では、トップレベルのフィールドに加えて、「UserInformation」というネストされたオブジェクトを持ち、さらにその中に「OtherInformation」という配列を含む階層構造のドキュメントを挿入しています。

> db.demo716.insertOne(
...    {
...         "id": 101,
...         "UserEmailId": "John@gmail.com",
...         "UserPassword": "123456",
...         "UserInformation": {
...            "UserName": "Chris",
...            "UserAge": 26,
...            "UserCountryName": "US",
...            "OtherInformation":
...            [
...               {
...                  "TeacherName":"Robert",
...                  "SubjectName":"MongoDB",
...                  "CollegeName":"MIT"
...               }
...            ]
...       }
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea9b1ff85324c2c98cc4c2f")
}

出力結果の acknowledged: true は、ドキュメントが正常に挿入されたことを示しています。insertedId には、自動的に生成されたObjectIdが格納されます。

find()メソッドですべてのドキュメントを表示する

find()メソッドを使用すると、コレクション内のすべてのドキュメントを取得して表示できます。pretty()メソッドを組み合わせると、インデントされた整形された読みやすい形式で出力されます。

> db.demo716.find().pretty();

これにより、次のような出力が得られます。

{
   "_id" : ObjectId("5ea9b1ff85324c2c98cc4c2f"),
   "id" : 101,
   "UserEmailId" : "John@gmail.com",
   "UserPassword" : "123456",
   "UserInformation" : {
      "UserName" : "Chris",
      "UserAge" : 26,
      "UserCountryName" : "US",
      "OtherInformation" : [
         {
            "TeacherName" : "Robert",
            "SubjectName" : "MongoDB",
            "CollegeName" : "MIT"
         }
      ]
   }
}

まとめ

このように、MongoDBではドキュメントの中にオブジェクトや配列を自由にネストできるため、リレーショナルデータベースのようにテーブルを分割することなく、複雑な階層データを1つのドキュメントとして表現できます。また、ネストされたフィールドには「UserInformation.UserName」のようにドット記法でアクセスでき、条件を指定した検索や更新も柔軟に行えます。

  1. MongoDBでJSON配列の内部要素にアクセスする方法|ドット記法の使い方を解説

    MongoDBでJSON配列の内部要素にアクセスするには、ドット記法(dot notation)を使用します。本記事では、実際にコレクションを作成し、ネストされた配列内のフィールドを検索する具体的な手順を、サンプルコードと実行結果とともに解説します。 サンプルデータの作成 まず、insert()メソッドを使って、ネストされた構造を持つドキュメントを含むコレクションを作成しましょう。 > db.demo687.insert({CountryName:US, ... info: ... { ... id:101, ... details: ... [ ... { ...   &n

  2. MongoDB Atlasでのデータベース作成と接続方法をわかりやすく解説

    はじめにMongoDBは、汎用的な用途で広く利用されているNoSQLデータベースのひとつです。オープンソースのドキュメント指向データベースであり、C++で構築されている点が特徴です。この記事では、以下の手順について順を追って解説します。クラウド上でのクラスタ作成接続用ツール「MongoDB Compass」のインストールCompassを使用したMongoDBクラスタへの接続データベースの作成MongoDBの基本用語MongoDBを扱う前に、まず押さえておきたい基本的な用語を確認しましょう。データベース(Database)コレクションを格納する物理的なコンテナです。コレクション(Collecti