要合并或合并字段,然后执行计数,请使用$组以及$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 }