使用 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 次瀏覽

開啟你的 職業生涯

完成課程並獲得認證

開始
廣告
© . All rights reserved.