MongoDB聚合來組合或合併欄位,然後進行計數?


為了合併或合併欄位然後執行計數,使用 $group 以及 $sum 和 $sort。讓我們用文件建立一個集合 -

> db.demo647.insertOne({"Subject":"MySQL"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9c86316c954c74be91e6ee")
}
> db.demo647.insertOne({"Subject":"MongoDB"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9c86356c954c74be91e6ef")
}
> db.demo647.insertOne({"Subject":"MySQL"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9c86376c954c74be91e6f0")
}
> db.demo647.insertOne({"Subject":"SQL Server"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9c86406c954c74be91e6f1")
}
> db.demo647.insertOne({"Subject":"MongoDB"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9c86436c954c74be91e6f2")
}
> db.demo647.insertOne({"Subject":"PL/SQL"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9c864b6c954c74be91e6f3")
}
> db.demo647.insertOne({"Subject":"MongoDB"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e9c86c16c954c74be91e6f4")
}

使用 find() 方法從集合中顯示所有文件 -

> db.demo647.find();

這將生成以下輸出 -

{ "_id" : ObjectId("5e9c86316c954c74be91e6ee"), "Subject" : "MySQL" }
{ "_id" : ObjectId("5e9c86356c954c74be91e6ef"), "Subject" : "MongoDB" }
{ "_id" : ObjectId("5e9c86376c954c74be91e6f0"), "Subject" : "MySQL" }
{ "_id" : ObjectId("5e9c86406c954c74be91e6f1"), "Subject" : "SQL Server" }
{ "_id" : ObjectId("5e9c86436c954c74be91e6f2"), "Subject" : "MongoDB" }
{ "_id" : ObjectId("5e9c864b6c954c74be91e6f3"), "Subject" : "PL/SQL" }
{ "_id" : ObjectId("5e9c86c16c954c74be91e6f4"), "Subject" : "MongoDB" }

以下是合併或合併欄位然後計數的查詢 -

> db.demo647.aggregate([ { "$group": { "_id": "$Subject", "COUNT": { "$sum": 1 } } }, { "$sort": { "COUNT": -1 } }, { "$limit": 2 } ] );

這將生成以下輸出 -

{ "_id" : "MongoDB", "COUNT" : 3 }
{ "_id" : "MySQL", "COUNT" : 2 }

更新於: 12-May-2020

574 次瀏覽

開啟您的 職業生涯

完成課程並獲得認證

開始
廣告