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

サブ配列からMongoDBドキュメントを検索しますか?


dot(。)表記を使用して、サブ配列からドキュメントを検索できます。まず、ドキュメントを使用してコレクションを作成しましょう-

> db.findDocumentDemo.insertOne(
...    {
...       "EmployeeDetails" :
...       {
...          "EmployeeAppraisalTime":
...
...          [
...
...             {"EmployeeDesignation": "Developer", "Salary": 45000},
...             {"EmployeeDesignation": "Tester", "Salary": 30000},
...             {"EmployeeDesignation": "HR", "Salary": 22000},
...             {"EmployeeDesignation": "Accountant", "Salary": 18000}
...          ]
...       }
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd2c0f7b64f4b851c3a13a8")
}
> db.findDocumentDemo.insertOne(
...    {
...       "EmployeeDetails" :
...       {
...          "EmployeeAppraisalTime":
...
...          [
...
...             {"EmployeeDesignation": "Developer", "Salary": 105000},
...             {"EmployeeDesignation": "Tester", "Salary": 45000},
...             {"EmployeeDesignation": "HR", "Salary": 34000},
...             {"EmployeeDesignation": "Accountant", "Salary": 24000}
...          ]
...       }
...    }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cd2c1d5b64f4b851c3a13a9")
}

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

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

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

{
   "_id" : ObjectId("5cd2c0f7b64f4b851c3a13a8"),
   "EmployeeDetails" : {
      "EmployeeAppraisalTime" : [
         {
            "EmployeeDesignation" : "Developer",
            "Salary" : 45000
         },
         {
            "EmployeeDesignation" : "Tester",
            "Salary" : 30000
         },
         {
            "EmployeeDesignation" : "HR",
            "Salary" : 22000
         },
         {
            "EmployeeDesignation" : "Accountant",
            "Salary" : 18000
         }
      ]
   }
}
{
   "_id" : ObjectId("5cd2c1d5b64f4b851c3a13a9"),
   "EmployeeDetails" : {
      "EmployeeAppraisalTime" : [
         {
            "EmployeeDesignation" : "Developer",
            "Salary" : 105000
         },
         {
            "EmployeeDesignation" : "Tester",
            "Salary" : 45000
         },
         {
            "EmployeeDesignation" : "HR",
            "Salary" : 34000
         },
         {
            "EmployeeDesignation" : "Accountant",
            "Salary" : 24000
         }
      ]
   }
}

以下は、サブ配列からドキュメントを検索するためのクエリです-

> db.findDocumentDemo.find({ 'EmployeeDetails.EmployeeAppraisalTime.EmployeeDesignation': 'Developer', 'EmployeeDetails.EmployeeAppraisalTime.Salary': { '$in': [45000,105000] } } );

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

{ "_id" : ObjectId("5cd2c0f7b64f4b851c3a13a8"), "EmployeeDetails" : { "EmployeeAppraisalTime" : [ { "EmployeeDesignation" : "Developer", "Salary" : 45000 }, { "EmployeeDesignation" : "Tester", "Salary" : 30000 }, { "EmployeeDesignation" : "HR", "Salary" : 22000 }, { "EmployeeDesignation" : "Accountant", "Salary" : 18000 } ] } }

{ "_id" : ObjectId("5cd2c1d5b64f4b851c3a13a9"), "EmployeeDetails" : { "EmployeeAppraisalTime" : [ { "EmployeeDesignation" : "Developer", "Salary" : 105000 }, { "EmployeeDesignation" : "Tester", "Salary" : 45000 }, { "EmployeeDesignation" : "HR", "Salary" : 34000 }, { "EmployeeDesignation" : "Accountant", "Salary" : 24000 } ] } }

  1. MongoDBで同じ配列要素に一致するドキュメントを見つけますか?

    同じ配列要素に一致するドキュメントを検索するには、find()を使用し、その中で$allを使用します。 $ all演算子は、フィールドの値が指定されたすべての要素を含む配列であるドキュメントを選択します。 ドキュメントを使用してコレクションを作成しましょう- > db.demo543.insertOne({id:101, subject:["MySQL", "Java" ,"C","Python"]});{    "acknowledged" : true, &nbs

  2. MongoDB埋め込みドキュメントで特定の要素を見つける方法は?

    特定の要素を見つけるには、MongoDBで$projectを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo744.insertOne( ...    { ...       studentInformation: ...       [ ...          { ...             studentName:"Robert", .