MongoDB 用於聚合不同文件中具有相似 id 的元素?
要對這樣的文件進行分組,請在 MongoDB aggregate() 中使用 $group。我們建立一個包含以下文件的集合:
> db.demo602.insertOne({id:1,Name:"Chris"});{
"acknowledged" : true, "insertedId" : ObjectId("5e960080ed011c280a0905c9")
}
> db.demo602.insertOne({id:2,Name:"David"});{
"acknowledged" : true, "insertedId" : ObjectId("5e960086ed011c280a0905ca")
}
> db.demo602.insertOne({id:1,Name:"Bob"});{
"acknowledged" : true, "insertedId" : ObjectId("5e96008ced011c280a0905cb")
}
> db.demo602.insertOne({id:3,Name:"Mike"});{
"acknowledged" : true, "insertedId" : ObjectId("5e960092ed011c280a0905cc")
}
> db.demo602.insertOne({id:2,Name:"John"});{
"acknowledged" : true, "insertedId" : ObjectId("5e960099ed011c280a0905cd")
}
> db.demo602.insertOne({id:1,Name:"Sam"});{
"acknowledged" : true, "insertedId" : ObjectId("5e9600a1ed011c280a0905ce")
}使用 find() 方法顯示集合中的所有文件:
> db.demo602.find();
這將產生以下輸出:
{ "_id" : ObjectId("5e960080ed011c280a0905c9"), "id" : 1, "Name" : "Chris" }
{ "_id" : ObjectId("5e960086ed011c280a0905ca"), "id" : 2, "Name" : "David" }
{ "_id" : ObjectId("5e96008ced011c280a0905cb"), "id" : 1, "Name" : "Bob" }
{ "_id" : ObjectId("5e960092ed011c280a0905cc"), "id" : 3, "Name" : "Mike" }
{ "_id" : ObjectId("5e960099ed011c280a0905cd"), "id" : 2, "Name" : "John" }
{ "_id" : ObjectId("5e9600a1ed011c280a0905ce"), "id" : 1, "Name" : "Sam" }以下是將具有相似 id 的元素聚合到不同文件中的查詢:
> db.demo602.aggregate([
... { $group: {
... '_id': {id:"$id", "Name" : "$Name"},
... "count" : { "$sum": 1 }
... }},
... { $group: {
... '_id': "$_id.id",
... "ListOfName" : {"$push" : {Name:"$_id.Name", Frequency: "$count"}}
... }},
... ],
... {'allowDiskUse': true}
... );這將產生以下輸出:
{ "_id" : 2, "ListOfName" : [
{ "Name" : "John", "Frequency" : 1 },
{ "Name" : "David", "Frequency" : 1 }
] }
{ "_id" : 3, "ListOfName" : [
{ "Name" : "Mike", "Frequency" : 1 }
] }
{ "_id" : 1, "ListOfName" : [
{ "Name" : "Sam", "Frequency" : 1 },
{ "Name" : "Bob", "Frequency" : 1 },
{ "Name" : "Chris", "Frequency" : 1 }
] }
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP