使用 MongoDB 聚合和 GroupBy 获取名称记录的频率


让我们首先创建一个包含文档的集合 -

> db.demo232.insertOne({_id:101,Name:"Chris"});
{ "acknowledged" : true, "insertedId" : 101 }
> db.demo232.insertOne({_id:102,Name:"Bob"});
{ "acknowledged" : true, "insertedId" : 102 }
> db.demo232.insertOne({_id:103,Name:"Bob"});
{ "acknowledged" : true, "insertedId" : 103 }
> db.demo232.insertOne({_id:104,Name:"David"});
{ "acknowledged" : true, "insertedId" : 104 }
> db.demo232.insertOne({_id:105,Name:"Chris"});
{ "acknowledged" : true, "insertedId" : 105 }

使用 find() 方法显示集合中的所有文档 -

> db.demo232.find();

这将产生如下输出 -

{ "_id" : 101, "Name" : "Chris" }
{ "_id" : 102, "Name" : "Bob" }
{ "_id" : 103, "Name" : "Bob" }
{ "_id" : 104, "Name" : "David" }
{ "_id" : 105, "Name" : "Chris" }

以下是获取 MongoDB 中名称记录频率的查询 -

> db.demo232.aggregate(  { $group : {_id : "$Name", Frequency : { $sum : 1 }} } );

这将产生如下输出 -

{ "_id" : "David", "Frequency" : 1 }
{ "_id" : "Bob", "Frequency" : 2 }
{ "_id" : "Chris", "Frequency" : 2 }

更新于:30-Mar-2020

127 次浏览

开启你的 职业生涯

完成课程并获得认证

开始
广告