蒙古資料庫中的“結構化”分組查詢,以顯示帶有顯示計數的新欄位的結果


為此,在 MongoDB IN aggregate() 中使用 $ 分組。 $ 分組透過指定的 _id 表示式對輸入文件進行分組,並針對每個不同的分組輸出一個文件。我們首先使用文件建立集合 −

> db.demo534.insertOne({_id:10,"ProductId":100,"ProductName":"Product-1"});
{ "acknowledged" : true, "insertedId" : 10 }
> db.demo534.insertOne({_id:11,"ProductId":100,"ProductName":"Product-2"});
{ "acknowledged" : true, "insertedId" : 11 }
> db.demo534.insertOne({_id:12,"ProductId":101,"ProductName":"Product-1"});
{ "acknowledged" : true, "insertedId" : 12 }

藉助 find() 方法從集合中顯示所有文件 −

> db.demo534.find();

這將生成以下輸出 −

{ "_id" : 10, "ProductId" : 100, "ProductName" : "Product-1" }
{ "_id" : 11, "ProductId" : 100, "ProductName" : "Product-2" }
{ "_id" : 12, "ProductId" : 101, "ProductName" : "Product-1" }

以下是 MongoDB 中實現結構化分組查詢的查詢 −

> db.demo534.aggregate(
... {
...    $group:
...    {
...       _id:
...          {
...             productName: "$ProductName",
...             productId: "$ProductId"
...          },
...          count:
...             {
...                $sum: 1
...             }
...          },
...       },
...       {
...          $group:
...             {
...                _id: "$_id.productId",
...                itemCounts:
...                   {
...                      "$push":
...                         {
...                            productName: "$_id.productName",
...                            count: "$count"
...                   }
...             }
...       }
... })

這將生成以下輸出 −

{ "_id" : 101, "itemCounts" : [ { "productName" : "Product-1", "count" : 1 } ] }
{ "_id" : 100, "itemCounts" : [ { "productName" : "Product-2", "count" : 1 }, { "productName" : "Product-1", "count" : 1 } ] }

更新於: 2020 年 5 月 14 日

100 次瀏覽

開啟您的 職業生涯

完成課程認證

開始
廣告