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"

      }

   ]

}

以下是删除对象数组中的空对象的查询-

> 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"

      }

   ]

}

以上是 MongoDB查询以删除对象数组中的空对象? 的全部内容, 来源链接: utcz.com/z/316728.html

回到顶部