如何在MongoDB中聚合嵌套文档?

要在MongoDB中聚合嵌套文档,可以使用$group。首先让我们创建一个包含文档的集合-

> db.aggregateDemo.insertOne(

...    {

...       "ProductInformation": [

...          {

...             "Product1": [

...                {

...                   Amount: 50

...                },

...                {

...                   Amount: 90

...                },

...                {

...                   Amount: 30

...                }

...             ]

...          },

...          {

...             "Product1": [

...                {

...                   Amount: 200

...                },

...                {

...                   Amount: 30

...                },

...                {

...                   Amount: 40

...                }

...             ]

...          },

...          {

...             "Product1": [

...                {

...                   Amount: 150

...                },

...                {

...                   Amount: 190

...                },

...                {

...                   Amount: 198

...                }

...             ]

...          }

...

...       ]

... });

{

   "acknowledged" : true,

   "insertedId" : ObjectId("5e04df58150ee0e76c06a04d")

}

> db.aggregateDemo.insertOne(

...    {

...       "ProductInformation": [

...          {

...             "Product1": [

...                {

...                   Amount: 100

...                },

...                {

...                   Amount: 1002

...                },

...                {

...                   Amount: 78

...                }

...             ]

...          },

...          {

...             "Product1": [

...                {

...                   Amount: 75

...                },

...                {

...                   Amount: 400

...                },

...                {

...                   Amount: 600

...                }

...             ]

...          },

...          {

...             "Product1": [

...                {

...                   Amount: 700

...                },

...                {

...                   Amount: 500

...                },

...                {

...                   Amount: 600

...                }

...             ]

...          }

...

...       ]

... });

{

   "acknowledged" : true,

   "insertedId" : ObjectId("5e04df93150ee0e76c06a04e")

}

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

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

这将产生以下输出-

{

   "_id" : ObjectId("5e04df58150ee0e76c06a04d"),

   "ProductInformation" : [

      {

         "Product1" : [

            {

               "Amount" : 50

            },

            {

               "Amount" : 90

            },

            {

               "Amount" : 30

            }

         ]

      },

      {

         "Product1" : [

      {

         "Amount" : 200

      },

      {

         "Amount" : 30

      },

      {

         "Amount" : 40

      }

   ]

},

{

   "Product1" : [

      {

         "Amount" : 150

      },

      {

         "Amount" : 190

      },

      {

         "Amount" : 198

      }

   ]

}

]

}

{

   "_id" : ObjectId("5e04df93150ee0e76c06a04e"),

   "ProductInformation" : [

      {

         "Product1" : [

            {

               "Amount" : 100

            },

            {

               "Amount" : 1002

            },

            {

               "Amount" : 78

            }

         ]

      },

   {

      "Product1" : [

         {

            "Amount" : 75

         },

         {

            "Amount" : 400

         },

         {

            "Amount" : 600

         }

      ]

   },

   {

      "Product1" : [

         {

            "Amount" : 700

         },

         {

            "Amount" : 500

         },

         {

            "Amount" : 600

         }

      ]

   }

]

}

这是汇总嵌套文档的查询-

> db.aggregateDemo.aggregate([

... {

...    $unwind:"$ProductInformation"

... },

... {

...    $unwind:"$ProductInformation.Product1"

... },

... {

...    $group:{

...       _id:null,

...       MaximumAmount:{

...          $max:"$ProductInformation.Product1.Amount"

...       }

...    }

... }

... ]);

这将产生以下输出-

{ "_id" : null, "MaximumAmount" : 1002 }

以上是 如何在MongoDB中聚合嵌套文档? 的全部内容, 来源链接: utcz.com/z/345648.html

回到顶部