在 MongoDB 中聚合中實現 $match 和 $project
在 MongoDB 聚合中,$match 篩選文件,僅將匹配指定條件的文件傳遞到下一個管道階段。
在 MongoDB 聚合中,$project 可以將請求欄位的文件傳遞到管道中的下一個階段。
讓我們看一個示例,並建立一個文件的集合:
> db.demo545.insert({Name:"Chris",details:{SubjectScore1:56,SubjectScore2:56}}) WriteResult({ "nInserted" : 1 }) > db.demo545.insert({Name:"David",details:{SubjectScore1:78,SubjectScore2:78}}) WriteResult({ "nInserted" : 1 })
在集合中使用 find() 方法顯示所有文件:
> db.demo545.find();
這將生成以下輸出:
{ "_id" : ObjectId("5e8e246e9e5f92834d7f05d5"), "Name" : "Chris", "details" : { "SubjectScore1" : 56, "SubjectScore2" : 56 } } { "_id" : ObjectId("5e8e24709e5f92834d7f05d6"), "Name" : "David", "details" : { "SubjectScore1" : 78, "SubjectScore2" : 78 } }
以下查詢用於實現 $match 和 $project:
>db.demo545.aggregate([{$match:{}},{$project:{"_id":0,"details.SubjectScore1":1,out:"$details .SubjectScore2"}},{$group:{_id:"$out"}}])
這將生成以下輸出:
{ "_id" : 78 } { "_id" : 56 }
廣告