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

MongoDBでキーが数値の場合にサブドキュメントの値へアクセスする方法

MongoDBでキーが数値のサブドキュメントにアクセスするには

MongoDBでは、フィールド名(キー)が数値になっているサブドキュメントにもアクセスできます。その場合、通常のドット記法ではなく、角括弧(ブラケット)記法を使用するのがポイントです。ここでは、実際にコレクションを作成し、数値キーのサブドキュメントから値を取得する手順を解説します。

サンプルコレクションの作成

まず、サブドキュメントを含むドキュメントを挿入してコレクションを作成します。insertOne()メソッドを使い、「Details」フィールドの中に数値キー("1"〜"4")を持つ複数のサブドキュメントを格納してみましょう。

> db.accessSubDocumentDemo.insertOne(
...     {
...
...        "Details" : {
...           "1" : {
...              "StudentLowerScore" : "33",
...              "StudentHoghScore" : "55"
...           },
...           "2" : {
...              "StudentLowerScore" : "45",
...              "StudentHoghScore" : "65"
...           },
...           "3" : {
...              "StudentLowerScore" : "39",
...              "StudentHoghScore" : "91"
...           },
...           "4" : {
...              "StudentLowerScore" : "41",
...              "StudentHoghScore" : "85"
...           }
...       }
...    }
... );
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5cd3baf0edc6604c74817cd6")
}

登録したドキュメントの確認

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

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

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

{
    "_id" : ObjectId("5cd3baf0edc6604c74817cd6"),
    "Details" : {
        "1" : {
           "StudentLowerScore" : "33",
           "StudentHoghScore" : "55"
        },
        "2" : {
           "StudentLowerScore" : "45",
           "StudentHoghScore" : "65"
        },
        "3" : {
           "StudentLowerScore" : "39",
           "StudentHoghScore" : "91"
        },
        "4" : {
           "StudentLowerScore" : "41",
           "StudentHoghScore" : "85"
        }
    }
}

数値キーのサブドキュメントへのアクセス

それでは、キーが数値であるサブドキュメントの値にアクセスしてみましょう。ここでは、数値「1」をキーとするサブドキュメントを取得します。数値キーの場合はドット記法が使えないため、以下のように角括弧記法でキーを指定する必要があります。

> db.accessSubDocumentDemo.findOne().Details["1"];

実行結果は以下の通りです。キー「1」に対応するサブドキュメントの内容が取得できていることがわかります。

{ "StudentLowerScore" : "33", "StudentHoghScore" : "55" }

このように、MongoDBでキーが数値のサブドキュメントにアクセスする際は、Details["1"] の形式でブラケット記法を使えば、目的の値を簡単に取り出すことができます。

  1. C#のStringDictionaryでキーと値のペアの数を取得する方法

    C#のStringDictionaryクラスでは、格納されているキーと値のペア(要素)の数を取得するためにCountプロパティを使用します。Countプロパティは、コレクション内に現在存在する要素の総数をint型の値として返します。ここでは、実際のコード例を通じて、StringDictionaryの要素数を取得する方法を詳しく見ていきましょう。例1:Countプロパティで要素数を取得するまずは基本的な使い方です。StringDictionaryに複数のキーと値を追加し、その後Countプロパティで要素数を取得しています。using System; using System.Collection

  2. Redis HLENコマンドの使い方 – ハッシュに含まれるフィールド数を取得する方法

    このチュートリアルでは、RedisのHLENコマンドを使って、指定したキーに保存されているハッシュ値に含まれるフィールドの数を取得する方法を解説します。redis-cliからHLENコマンドを実行することで、ハッシュ内のフィールド総数を簡単に確認できます。 HLENコマンドの構文 redis host:port> HLEN <キー名> 指定したキーに対してHLENコマンドを実行すると、そのハッシュに登録されているフィールドの数が返されます。 実行結果(戻り値) - (integer) ハッシュに含まれるフィールドの数 - 0:キーが存在しない場合 - エラー:キーは存在するが