在 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 }

更新時間:14-5-2020

2 千次以上瀏覽

開啟您的事業

完成課程後獲得認證

開始
廣告