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

MongoDBは、$ inを使用して複数の配列アイテムで検索しますか?


$ in演算子を使用して、複数の配列項目を検索できます。概念を理解するために、ドキュメントを使用してコレクションを作成しましょう。

ドキュメントを使用してコレクションを作成するためのクエリは次のとおりです-

>db.findByMultipleArrayDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Smith",
   "StudentCoreSubject":["Compiler","Operating System","Computer Networks"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7ef07b559dd2396bcfbfc4")
}
>db.findByMultipleArrayDemo.insertOne({"StudentFirstName":"Carol","StudentLastName":"Taylor",
   "StudentCoreSubject":["MongoDB","MySQL","SQL Server"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7ef09d559dd2396bcfbfc5")
}
>db.findByMultipleArrayDemo.insertOne({"StudentFirstName":"Bob","StudentLastName":"Taylor",
   "StudentCoreSubject":["MongoDB","MySQL","SQL Server"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7ef0c7559dd2396bcfbfc6")
}
>db.findByMultipleArrayDemo.insertOne({"StudentFirstName":"David","StudentLastName":"Johnson",
   "StudentCoreSubject":["Compiler","Operating System","Computer Networks"]});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7ef0f2559dd2396bcfbfc7")
}

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

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

以下は出力です-

{
   "_id" : ObjectId("5c7ef07b559dd2396bcfbfc4"),
   "StudentFirstName" : "John",
   "StudentLastName" : "Smith",
   "StudentCoreSubject" : [
      "Compiler",
      "Operating System",
      "Computer Networks"
   ]
}
{
   "_id" : ObjectId("5c7ef09d559dd2396bcfbfc5"),
   "StudentFirstName" : "Carol",
   "StudentLastName" : "Taylor",
   "StudentCoreSubject" : [
      "MongoDB",
      "MySQL",
      "SQL Server"
   ]
}
{
   "_id" : ObjectId("5c7ef0c7559dd2396bcfbfc6"),
   "StudentFirstName" : "Bob",
   "StudentLastName" : "Taylor",
   "StudentCoreSubject" : [
      "MongoDB",
      "MySQL",
      "SQL Server"
   ]
}
{
   "_id" : ObjectId("5c7ef0f2559dd2396bcfbfc7"),
   "StudentFirstName" : "David",
   "StudentLastName" : "Johnson",
   "StudentCoreSubject" : [
      "Compiler",
      "Operating System",
      "Computer Networks"
   ]
}

$ in演算子を使用して、複数の配列アイテムで検索します-

> db.findByMultipleArrayDemo.find({ StudentCoreSubject: { $in: ["Compiler", "Computer Networks"] }}).pretty();

以下は出力です-

{
   "_id" : ObjectId("5c7ef07b559dd2396bcfbfc4"),
   "StudentFirstName" : "John",
   "StudentLastName" : "Smith",
   "StudentCoreSubject" : [
      "Compiler",
      "Operating System",
      "Computer Networks"
   ]
}
{
   "_id" : ObjectId("5c7ef0f2559dd2396bcfbfc7"),
   "StudentFirstName" : "David",
   "StudentLastName" : "Johnson",
   "StudentCoreSubject" : [
      "Compiler",
      "Operating System",
      "Computer Networks"
   ]
}

  1. MongoDBでは、$ in検索を複数の単一検索よりも高速に使用していますか?

    はい、$inを使用する方が高速です。例を見て、ドキュメントを使用してコレクションを作成しましょう- > db.demo653.insertOne({subject:"MySQL"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5ea04b274deddd72997713c0") } > db.demo653.insertOne({subject:"MongoDB"}); {

  2. MongoDBを使用した複数のアトミックアップデート?

    複数のアトミック更新の場合は、$ setとともにupdate()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo699.insertOne({Name:"Chris Brown"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5ea6e370551299a9f98c93a7") } > db.demo699.insertOne({Name:"Da