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

オブジェクト配列内の空のオブジェクトを削除するMongoDBクエリ?


これには$pull演算子を使用できます。まず、ドキュメントを使用してコレクションを作成しましょう。ここでは、空のオブジェクトも追加しました-

> db.removeEmptyObjectsDemo.insertOne(
   {
      "_id" :101,
      "LoginDate" :new ISODate(),
      "UserDetails" : [
         {
            "UserName" : "John"
         },
         {
         },
         {
            "UserName" : "Sam"
         }
      ]
   }
);
{ "acknowledged" : true, "insertedId" : 101 }

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

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

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

{
   "_id" : 101,
   "LoginDate" : ISODate("2019-05-25T04:46:29.505Z"),
   "UserDetails" : [
      {
         "UserName" : "John"
      },
      {
      },
      {
         "UserName" : "Sam"
      }
   ]
}

以下は、object-array内の空のオブジェクトを削除するためのクエリです-

> db.removeEmptyObjectsDemo.update(
{},
{ "$pull": { "UserDetails": { "UserName": { "$exists": false } } } },
{ "multi": true }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

上記のコレクションのドキュメントを確認しましょう-

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

これにより、次の出力が生成されます。空のオブジェクトが正常に削除されました-

{
   "_id" : 101,
   "LoginDate" : ISODate("2019-05-25T04:46:29.505Z"),
   "UserDetails" : [
      {
         "UserName" : "John"
      },
      {
         "UserName" : "Sam"
      }
   ]
}

  1. ドキュメントからサブドキュメントを削除するMongoDBクエリ?

    ドキュメントからサブドキュメントを削除するには、update()とともに$pullを使用します。まず、ドキュメントを使用してコレクションを作成しましょう- > db.demo538.insertOne( ... { ...    id:101, ...    "details": ...    { ...       anotherDetails: ...       [ ...          {

  2. コレクションから配列全体を削除するMongoDBクエリ?

    コレクションから配列全体を削除するには、MongoDBで$unsetを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo609.insertOne({"ListOfSubject":["MySQL","MongoDB"]});{    "acknowledged" : true, "insertedId" : ObjectId("5e974695f57d0dc0b182d62c") } > db.demo609