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

特定の値より大きい配列値を持つドキュメントを照合するためのMongoDBクエリ


$elemMatchを使用できます。 $ elemMatch演算子は、指定されたすべてのクエリ条件に一致する要素が少なくとも1つある配列フィールドを含むドキュメントと一致します。

ドキュメントを使用してコレクションを作成しましょう-

> db.demo701.insertOne({"ListOfValues":[100,200,300]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea6e8cf551299a9f98c93b0")
}
> db.demo701.insertOne({"ListOfValues":[500,700,1000]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea6e8d8551299a9f98c93b1")
}
> db.demo701.insertOne({"ListOfValues":[300,350,450]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ea6e8e1551299a9f98c93b2")
}

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

> db.demo701.find();

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5ea6e8cf551299a9f98c93b0"), "ListOfValues" : [ 100, 200, 300 ] }
{ "_id" : ObjectId("5ea6e8d8551299a9f98c93b1"), "ListOfValues" : [ 500, 700, 1000 ] }
{ "_id" : ObjectId("5ea6e8e1551299a9f98c93b2"), "ListOfValues" : [ 300, 350, 450 ] }

以下は、特定の値より大きい配列値を持つドキュメントを照合するためのクエリです-

> db.demo701.find({"ListOfValues":{$elemMatch:{$gt:500}}});

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5ea6e8d8551299a9f98c93b1"), "ListOfValues" : [ 500, 700, 1000 ] }

  1. 特定の数より大きいフィールド値を持つMongoDBドキュメントを照合し、それらをフェッチしますか?

    一致させるには、MongoDBで$matchを使用します。特定の数値より大きい値の場合は、$gtを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo730.insertOne({"Name" : "Chris", "Marks" : 33 }); {    "acknowledged" : true,    "insertedId" : ObjectId("5eac54cd56e85a39df5f6339&

  2. MongoDBで配列をクエリして、特定の値をフェッチします

    配列から特定の値をフェッチするには、$ projectとともにaggregate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo761.insertOne( ...    { ...       "details": [ ...          { ...             "student": { ...     &nb