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

MongoDBで50より大きい値の配列(JSON配列ではなく)を取得する方法

MongoDBで50より大きい値の配列(JSON配列ではなく)を取得する方法

MongoDBにおいて、JSON配列ではなく純粋な値の配列として結果を取得したい場合には$in演算子を活用します。さらに、「〜より大きい」という条件を指定するには、$gt演算子を使用します。ここでは、実際にドキュメントを含むコレクションを作成しながら、具体的な手順を解説していきます。

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

まずは、数値を持つドキュメントを格納したコレクションを作成しましょう。

> db.demo50.save({"Value":40});
WriteResult({ "nInserted" : 1 })
> db.demo50.save({"Value":100});
WriteResult({ "nInserted" : 1 })
> db.demo50.save({"Value":20});
WriteResult({ "nInserted" : 1 })
> db.demo50.save({"Value":510});
WriteResult({ "nInserted" : 1 })

すべてのドキュメントを表示する

find()メソッドを使えば、コレクション内のすべてのドキュメントを確認できます。

> db.demo50.find();

上記のコマンドを実行すると、次のような出力が得られます。

{ "_id" : ObjectId("5e270c02cfb11e5c34d89903"), "Value" : 40 }
{ "_id" : ObjectId("5e270c05cfb11e5c34d89904"), "Value" : 100 }
{ "_id" : ObjectId("5e270c07cfb11e5c34d89905"), "Value" : 20 }
{ "_id" : ObjectId("5e270c11cfb11e5c34d89906"), "Value" : 510 }

50より大きい値を持つドキュメントの配列を取得するクエリ

以下が、MongoDBで「Value」フィールドが50より大きいドキュメントを、値の配列として取得するためのクエリです。まずdistinct()メソッドで条件に合致する_idのリストを取得し、その後$in演算子を使って該当するドキュメントのみを取り出します。

> listOfValues = db.demo50.distinct("_id", {Value:{$gt:50}});
[
    ObjectId("5e270c05cfb11e5c34d89904"),
    ObjectId("5e270c11cfb11e5c34d89906")
]
> db.demo50.find({_id:{$in:listOfValues}});

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

{ "_id" : ObjectId("5e270c05cfb11e5c34d89904"), "Value" : 100 }
{ "_id" : ObjectId("5e270c11cfb11e5c34d89906"), "Value" : 510 }

このように、distinct()$inを組み合わせることで、JSON形式の配列ではなく必要な値だけを抽出した配列として結果を取得できます。$gt演算子による大小比較と併せて覚えておけば、条件に応じた柔軟なデータ抽出が可能になります。

  1. MongoDBで特定の値より大きい配列要素を持つドキュメントを照会する方法($elemMatch活用)

    MongoDBで配列内の値を条件に照合するにはMongoDBでは、$elemMatch 演算子を使用することで、指定したすべてのクエリ条件に一致する要素が少なくとも1つ含まれる配列フィールドを持つドキュメントを照合できます。ここでは、配列内の値が特定の値より大きいドキュメントを検索する方法を、具体的なサンプルコードとともに解説します。1. サンプルコレクションの作成まず、ドキュメントを含むコレクションを作成します。> db.demo701.insertOne({ListOfValues:[100,200,300]}); { acknowledged : true, ins

  2. PHPの配列からランダムな値を取得する方法|array_rand()関数の使い方

    PHPで配列からランダムな値を取得するには、array_rand()関数を使います。この関数は配列からランダムなキーを返すため、そのキーを指定して対応する値にアクセスするのが基本の流れです。 array_rand()関数とは array_rand()は、配列から1つ以上のランダムなキーを取り出すPHPの組み込み関数です。構文は以下の通りです。 array_rand( array $array, int $num = 1 ) : int|string|array 第1引数: 対象となる配列を指定します。 第2引数: 取得するキーの個数を指定します(省略可、デフォルトは1)。2以上を指定した場合