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

ネストされた配列のMongoDB$push?


ここで、$ pushを使用して、ネストされた配列に新しいドキュメントを追加できます。上記の$pushの概念を理解するために、ネストされた配列ドキュメントを使用してコレクションを作成しましょう。ドキュメントを使用してコレクションを作成するためのクエリは次のとおりです。

>db.nestedArrayDemo.insertOne({"EmployeeName":"Larry","EmployeeSalary":9000,"EmployeeDetails":
   [{"EmployeeDOB":new Date('1990-01-21'),"EmployeeDepartment":"ComputerScience","EmployeeProject":
   [{"Technology":"C","Duration":6},{"Technology":"Java","Duration":7}]}]});
>

出力は次のとおりです。

{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c6d73090c3d5054b766a76e")
}

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

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

出力は次のとおりです。

{
   "_id" : ObjectId("5c6d73090c3d5054b766a76e"),
   "EmployeeName" : "Larry",
   "EmployeeSalary" : 9000,
   "EmployeeDetails" : [
      {
         "EmployeeDOB" : ISODate("1990-01-21T00:00:00Z"),
         "EmployeeDepartment" : "ComputerScience",
         "EmployeeProject" : [
            {
               "Technology" : "C",
               "Duration" : 6
            },
            {
               "Technology" : "Java",
               "Duration" : 7
            }
         ]
      }
   ]
}

これは、新しいドキュメントを追加するためのネストされた配列の$pushのデモです。クエリは次のとおりです。

>db.nestedArrayDemo.update({"_id":ObjectId("5c6d73090c3d5054b766a76e"),
   "EmployeeDetails.EmployeeDepartment":"ComputerScience"}, {"$push":
   {"EmployeeDetails.$.EmployeeProject": {"Technology":"Python", "Duration":4 }}});
   WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

上記のクエリでは、ネストされた配列にドキュメント{"Technology": "Python"、 "Duration":4}を追加しました。ここで、コレクションのドキュメントをもう一度表示します。クエリは次のとおりです。

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

出力は次のとおりです。

{
   "_id" : ObjectId("5c6d73090c3d5054b766a76e"),
   "EmployeeName" : "Larry",
   "EmployeeSalary" : 9000,
   "EmployeeDetails" : [
      {
         "EmployeeDOB" : ISODate("1990-01-21T00:00:00Z"),
         "EmployeeDepartment" : "ComputerScience",
         "EmployeeProject" : [
            {
               "Technology" : "C",
               "Duration" : 6
            },
            {
               "Technology" : "Java",
               "Duration" : 7
            },
            {
               "Technology" : "Python",
               "Duration" : 4
            }
         ]
      }
   ]
}

  1. MongoDBで$pushを使用して配列を更新する

    $ pushで配列を更新するには、MongoDBでupdateOne()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo526.insertOne( ... { ... ...    "CountryName": "US", ...    "TeacherName": "Bob", ...    "StudentInformation": [ ...      

  2. MongoDBでネストされた配列のフィルタリング条件を設定します

    フィルタリング条件を設定するには、MongoDBaggregate()で$filterと$condを使用します。 $ filterは、指定された条件に基づいて返す配列のサブセットを選択します。ドキュメントを使用してコレクションを作成しましょう- > db.demo725.insertOne( ...    { ... ...       "details": { ... ...          "userMessages": [ ...