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

複数の基準に準拠する配列内の2つの値を持つドキュメントを検索するMongoDBクエリ?


これには、$elemMatch演算子を使用します。まず、ドキュメントを使用してコレクションを作成しましょう-

> db.findDocumentsHaving2Demo.insertOne(
   {_id : 101, Values: [78,98]}
);
{ "acknowledged" : true, "insertedId" : 101 }
> db.findDocumentsHaving2Demo.insertOne(
   {_id :102, Values : [89,102]}
);
{ "acknowledged" : true, "insertedId" : 102 }

以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-

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

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

{ "_id" : 101, "Values" : [ 78, 98 ] }
{ "_id" : 102, "Values" : [ 89, 102 ] }

以下は、複数の基準に準拠する配列内の2つの値を持つドキュメントを検索するためのクエリです-

> db.findDocumentsHaving2Demo.find({$and: [
   {Values: {$elemMatch: {$gte: 77, $lte: 78}}},
   {Values: {$elemMatch: {$gte:90 , $lte: 110}}},
   {'Values.2': {$exists: false}}
]});

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

{ "_id" : 101, "Values" : [ 78, 98 ] }

  1. オブジェクトの配列内で複数の一致を見つけるためのMongoDBクエリ?

    これには、$andを$regexと一緒に使用します。 $ andは、1つ以上の式の配列に対して論理積演算を実行し、配列内のすべての式を満たすドキュメントを選択します。 ドキュメントを使用してコレクションを作成しましょう- > db.demo525.insertOne({"details":[{Name:"Chris","CountryName":"US"}]});{    "acknowledged" : true,    "insert

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

    $elemMatchを使用できます。 $ elemMatch演算子は、指定されたすべてのクエリ条件に一致する要素が少なくとも1つある配列フィールドを含むドキュメントと一致します。 ドキュメントを使用してコレクションを作成しましょう- > db.demo701.insertOne({"ListOfValues":[100,200,300]}); {    "acknowledged" : true,    "insertedId" : ObjectId("5ea6e8cf5512