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

MongoDBの別の配列内にネストされた配列から特定のレコードを削除しますか?


特定のレコードを削除するには、$pull演算子を使用します。まず、ドキュメントを使用してコレクションを作成しましょう-

> dbdeletingSpecificRecordDemoinsertOne(
   {
      "StudentDetails": [
         {
            "StudentName": "John",
            "StudentSubjectDetails": [
               {
                  "Subject": "MongoDB",
                  "Marks":45
               },
               {
                  "Subject": "MySQL",
                  "Marks":67
               }
            ]
         }
      ]
   }
);
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cf2210ab64a577be5a2bc06")
}

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

> dbdeletingSpecificRecordDemofind()pretty();

これにより、次のドキュメントが作成されます-

{
   "_id" : ObjectId("5cf2210ab64a577be5a2bc06"),
   "StudentDetails" : [
      {
         "StudentName" : "John",
         "StudentSubjectDetails" : [
            {
               "Subject" : "MongoDB",
               "Marks" : 45
            },
            {
               "Subject" : "MySQL",
               "Marks" : 67
            }
         ]
      }
   ]
}

これは、別の配列内にネストされた配列から特定のレコードを削除するためのクエリです-

> dbdeletingSpecificRecordDemoupdate({"_id": ObjectId("5cf2210ab64a577be5a2bc06"), "StudentDetailsStudentName" : "John"},
   {
      "$pull": {"StudentDetails$StudentSubjectDetails" : { "Marks":45 }}
   }, multi=true
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

ドキュメントをもう一度確認しましょう-

> dbdeletingSpecificRecordDemofind()pretty();

これにより、次のドキュメントが作成されます-

{
   "_id" : ObjectId("5cf2210ab64a577be5a2bc06"),
   "StudentDetails" : [
      {
         "StudentName" : "John",
         "StudentSubjectDetails" : [
            {
               "Subject" : "MySQL",
               "Marks" : 67
            }
         ]
      }
   ]
}

  1. MongoDBドキュメントの特定のフィールドから配列要素の数を取得しますか?

    特定のフィールドから配列要素をカウントするには、MongoDBで$sizeを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo723.insertOne({"Subject":["MySQL","MongoDB"]}); {    "acknowledged" : true,    "insertedId" : ObjectId("5eab094d43417811278f588a") } >

  2. MongoDBを使用して、特定のネストされたドキュメントのオブジェクトの配列をクエリしますか?

    ネストされたドキュメントのオブジェクトの配列をクエリするには、find()を使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo763.insertOne( ...    { ...       _id:1, ...       CountryName:"US", ...       "studentInformation": [ ...          {