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

MongoDBを使用して、異なる順序の値と完全に一致する配列を見つける方法は?


異なる順序の値と完全に一致する配列を見つけるには、$all演算子を使用できます。ドキュメントを使用してコレクションを作成しましょう。以下はクエリです

>db.exactMatchArrayDemo.insertOne({"StudentName":"David","StudentAge":22,"StudentGameScores":[45,78,98]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9c94702d6669774125246c")
}
>db.exactMatchArrayDemo.insertOne({"StudentName":"Chris","StudentAge":23,"StudentGameScores":[45,78]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9c94a42d6669774125246d")
}

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

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

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

{
   "_id" : ObjectId("5c9c94702d6669774125246c"),
   "StudentName" : "David",
   "StudentAge" : 22,
   "StudentGameScores" : [
      45,
      78,
      98
   ]
}
{
   "_id" : ObjectId("5c9c94a42d6669774125246d"),
   "StudentName" : "Chris",
   "StudentAge" : 23,
   "StudentGameScores" : [
      45,
      78
   ]
}

以下は、完全に一致する配列を見つけるためのクエリです

> db.exactMatchArrayDemo.find({ "StudentGameScores": { "$size" : 2, "$all": [ 78, 45 ] } }).pretty();

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

{
   "_id" : ObjectId("5c9c94a42d6669774125246d"),
   "StudentName" : "Chris",
   "StudentAge" : 23,
   "StudentGameScores" : [
      45,
      78
   ]
}

以下は、完全に一致する配列を見つけるためのクエリですが、順序は重要ではありません。 3つの値を持つフィールド「StudentGameScores」を取得するために異なるサイズを設定しました

> db.exactMatchArrayDemo.find({ "StudentGameScores": { "$size" : 3, "$all": [ 78, 45 ] } }).pretty();

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

{
   "_id" : ObjectId("5c9c94702d6669774125246c"),
   "StudentName" : "David",
   "StudentAge" : 22,
   "StudentGameScores" : [
      45,
      78,
      98
   ]
}

  1. MongoDBの配列フィールドを操作してすべてに一致させるにはどうすればよいですか?

    MongoDBのすべてに一致させるには、$allを使用します。 $ all演算子は、フィールドの値が指定されたすべての要素を含む配列であるドキュメントを選択します。ドキュメントを使用してコレクションを作成しましょう- > db.demo695.insertOne({"ListOfValues":[100,200,500,800]}); {    "acknowledged" : true,    "insertedId" : ObjectId("5ea6d4c4551299a9f

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

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