MongoDB 聚合以獲取相應重複名稱的欄位值的計數?
讓我們看一個示例並使用文件建立集合 −
> db.demo558.insertOne(
... {
... _id : 100,
... CountryCode:101,
... details: [
... {
... Name:"Chris",
... Subject:"MySQL"
... },
... {
... Name:"Chris",
... Subject:"MongoDB"
... },
... {
... Name:"Chris",
... Subject:"Java"
... },
... {
... Name:"Bob",
... Subject:"Python"
... },
... {
... Name:"Bob",
... Subject:"Java"
... }
... ]
... }
... )
{ "acknowledged" : true, "insertedId" : 100 }在集合中顯示所有文件,其方法為 find() −
> db.demo558.find();
結果如下 −
{ "_id" : 100, "CountryCode" : 101, "details" : [
{ "Name" : "Chris", "Subject" : "MySQL" },
{ "Name" : "Chris", "Subject" : "MongoDB" },
{ "Name" : "Chris", "Subject" : "Java" },
{ "Name" : "Bob", "Subject" : "Python" },
{ "Name" : "Bob", "Subject" : "Java" }
] }以下是獲取計數的查詢 −
> db.demo558.aggregate([
... {$unwind: "$details" },
... {$group: { _id: "$details.Name", NameCount:{$sum : 1}, Subject : {$push: "$details.Subject"}}},
... {$project: { NameCount: 1, SubjectCount : {$size: "$Subject"}}}
... ]).pretty()結果如下 −
{ "_id" : "Bob", "NameCount" : 2, "SubjectCount" : 2 }
{ "_id" : "Chris", "NameCount" : 3, "SubjectCount" : 3 }
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP