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

แบบสอบถาม MongoDB เพื่อดึงค่าอาร์เรย์


ใช้ find() ร่วมกับ $elemMatch เพื่อดึงค่าอาร์เรย์ ให้เราสร้างคอลเลกชันที่มีเอกสารก่อน -

> db.fetchingArrayValuesDemo.insertOne(... {... "StudentName":"David",... "StudentDetails":[... {... "FatherName":"Bob",.. . "CountryName":"US",...... "Favourite":[... {... "Teacher":"DAVID",... "Subject":[... "MySQL", ... "MongoDB",... "Java"... ],... "Marks":[... 50,... 60,... 65... ]... }.. . ]...... }... ]... }... );{ "acknowledged" :true, "insertedId" :ObjectId("5e06fc3425ddae1f53b621fa")}> db.fetchingArrayValuesDemo.insertOne(... {... "StudentName":"Robert",... "StudentDetails":[... {... "FatherName":"Sam",... "CountryName":"AUS",.... .. "รายการโปรด":[... {... "ครู":"MIKE",... "เรื่อง":[... "Python",... "C",... "C++"... ],... "Marks":[... 76,... 89,... 91.. . ]... }... ]...... }... ]... }... );{ "acknowledged" :true, "insertedId" :ObjectId("5e06fc6825dda1f53b621fb")} 

ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find() -

> db.fetchingArrayValuesDemo.find();

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

{ "_id" :ObjectId("5e06fc3425ddae1f53b621fa"), "StudentName" :"David", "StudentDetails" :[ { "FatherName" :"Bob", "CountryName" :"US", "Favourite" :[ { "ครู" :"DAVID", "หัวเรื่อง" :[ "MySQL", "MongoDB", "Java" ], "เครื่องหมาย" :[ 50, 60, 65 ] } ] } ] }{ "_id" :ObjectId( "5e06fc6825ddae1f53b621fb"), "StudentName" :"Robert", "StudentDetails" :[ { "FatherName" :"Sam", "CountryName" :"AUS", "Favourite" :[ { "Teacher" :"MIKE", " Subject" :[ "Python", "C", "C++" ], "Marks" :[ 76, 89, 91 ] } ] } ] }

นี่คือแบบสอบถามเพื่อดึงค่าอาร์เรย์ -

> db.fetchingArrayValuesDemo.find({... StudentDetails:{... $elemMatch:{... Favourite:{... $elemMatch:{... Teacher:"DAVID"... }. .. }... }... }... });

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

{ "_id" :ObjectId("5e06fc3425ddae1f53b621fa"), "StudentName" :"David", "StudentDetails" :[ { "FatherName" :"Bob", "CountryName" :"US", "Favourite" :[ { "ครู" :"เดวิด" "หัวเรื่อง" :[ "MySQL", "MongoDB", "Java" ], "เครื่องหมาย" :[ 50, 60, 65 ] } ] } ] }