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

MongoDBで提供された配列の任意の組み合わせを含む配列フィールドに一致しますか?


$nin演算子を$elemMatchと一緒に使用し、$notを使用します。概念を理解するために、ドキュメントを使用してコレクションを作成しましょう。ドキュメントを使用してコレクションを作成するためのクエリは次のとおりです-

> db.combinationOfArrayDemo.insertOne({"StudentName":"Larry","StudentAge":21,"StudentFavouriteTechnicalSubject":["C","Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f77cc8d10a061296a3c58")
}
> db.combinationOfArrayDemo.insertOne({"StudentName":"Mike","StudentAge":23,"StudentFavouriteTechnicalSubject":["C++","Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f77dc8d10a061296a3c59")
}
> db.combinationOfArrayDemo.insertOne({"StudentName":"David","StudentAge":22,"StudentFavouriteTechnicalSubject":["Java"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f77f48d10a061296a3c5a")
}

find()メソッドを使用して、コレクションのすべてのドキュメントを表示します。クエリは次のとおりです-

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

以下は出力です-

{
   "_id" : ObjectId("5c7f77cc8d10a061296a3c58"),
   "StudentName" : "Larry",
   "StudentAge" : 21,
   "StudentFavouriteTechnicalSubject" : [
      "C",
      "Java"
   ]
}
{
   "_id" : ObjectId("5c7f77dc8d10a061296a3c59"),
   "StudentName" : "Mike",
   "StudentAge" : 23,
   "StudentFavouriteTechnicalSubject" : [
      "C++",
      "Java"
   ]
}
{
   "_id" : ObjectId("5c7f77f48d10a061296a3c5a"),
   "StudentName" : "David",
   "StudentAge" : 22,
   "StudentFavouriteTechnicalSubject" : [
      "Java"
   ]
}

これは、MongoDBで提供された配列の任意の組み合わせを含む配列フィールドを照合するためのクエリです-

> db.combinationOfArrayDemo.find({StudentFavouriteTechnicalSubject: {$not: {$elemMatch:
{$nin: ['C++', 'Java']}}}}).pretty();

以下は出力です-

{
   "_id" : ObjectId("5c7f77dc8d10a061296a3c59"),
   "StudentName" : "Mike",
   "StudentAge" : 23,
   "StudentFavouriteTechnicalSubject" : [
      "C++",
      "Java"
   ]
}
{
   "_id" : ObjectId("5c7f77f48d10a061296a3c5a"),
   "StudentName" : "David",
   "StudentAge" : 22,
   "StudentFavouriteTechnicalSubject" : [
      "Java"
   ]
}

  1. 設定されたフィールドのMongoDBスライス配列?

    配列をスライスするには、MongoDBで$slice演算子を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo503.insertOne({_id:1,Name:"John",Subject:["MySQL","Java","C"]}); { "acknowledged" : true, "insertedId" : 1 } > db.demo503.insertOne({_id:2,Name:"David",

  2. 配列フィールドを含むドキュメントに一致するMongoDBクエリ

    配列フィールドを含むドキュメントを照合するには、$elemMatch演算子を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo592.insertOne( ...    { ...       "id":101, ...       "details" : [ ...          { "Name" : "Chris", "Value