Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

ใช้ $match และ $project ใน MongoDB aggregate


$match กรองเอกสารเพื่อส่งเฉพาะเอกสารที่ตรงกับเงื่อนไขที่ระบุไปยังขั้นตอนไปป์ไลน์ถัดไป

โครงการ $ จะส่งผ่านเอกสารพร้อมกับฟิลด์ที่ร้องขอไปยังขั้นตอนถัดไปในไปป์ไลน์

ให้เราดูตัวอย่างและสร้างคอลเลกชันที่มีเอกสาร -

<ก่อนหน้า>> db.demo545.insert({Name:"Chris",details:{SubjectScore1:56,SubjectScore2:56}})WriteResult({ "nInserted" :1 })> db.demo545.insert({Name:"เดวิด" รายละเอียด:{SubjectScore1:78,SubjectScore2:78}})WriteResult({ "nInserted" :1 })

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -

> db.demo545.find();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" :ObjectId("5e8e246e9e5f92834d7f05d5"), "Name" :"Chris", "details" :{ "SubjectScore1" :56, "SubjectScore2" :56 } }{ "_id" :ObjectId("5ef8ed247609 "), "ชื่อ" :"เดวิด", "รายละเอียด" :{ "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 }