在MongoDB中查找数组的所有元素都具有特定值的文档?

您可以find()为此使用。首先让我们创建一个包含文档的集合-

> db.findDocumentsDemo.insertOne(

   {

      _id: 101,

      "ProductDetails": [

         { "ProductValue":100 },

         { "ProductValue":120 }

      ]

   }

);

{ "acknowledged" : true, "insertedId" : 101 }

> db.findDocumentsDemo.insertOne(

   {

      _id: 102,

      "ProductDetails": [

         { "ProductValue":120},

         { "ProductValue":120 },

         { "ProductValue":120 }

      ]

   }

);

{ "acknowledged" : true, "insertedId" : 102 }

以下是在find()方法的帮助下显示集合中所有文档的查询-

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

这将产生以下输出-

{

   "_id" : 101,

   "ProductDetails" : [

      {

         "ProductValue" : 100

      },

      {

         "ProductValue" : 120

      }

   ]

}

{

   "_id" : 102,

   "ProductDetails" : [

      {

         "ProductValue" : 120

      },

      {

         "ProductValue" : 120

      },

      {

         "ProductValue" : 120

      }

   ]

}

以下是查找文档的查询,其中文档中数组的所有元素均具有特定值,即ProductValue 120,在此处-

> db.findDocumentsDemo.find({

   "ProductDetails.ProductValue" : {

   },

   "ProductDetails" : {

      $not : {

         $elemMatch : {

            "ProductValue" : {

               $ne : 120

            }

         }

      }

   }

});

这将产生以下输出-

{ "_id" : 102, "ProductDetails" : [ { "ProductValue" : 120 }, { "ProductValue" : 120 }, { "ProductValue" : 120 } ] }

以上是 在MongoDB中查找数组的所有元素都具有特定值的文档? 的全部内容, 来源链接: utcz.com/z/360323.html

回到顶部