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

แบบสอบถาม MongoDB ตามฟิลด์ย่อย?


คุณสามารถใช้เครื่องหมายจุด (.) เพื่อสอบถามตามฟิลด์ย่อย ให้เราสร้างคอลเลกชันด้วยเอกสาร แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้ -

> db.queryBySubFieldDemo.insertOne( ... { ... "StudentPersonalDetails" :{"StudentName" :"John","StudentHobby" :"Photography"}, ... "StudentScores" :{"MathScore" :56} ... }... );{ "รับทราบ" :จริง "insertedId" :ObjectId("5c92c2995259fcd195499808")}> db.queryBySubFieldDemo.insertOne( ... { ... "StudentPersonalDetails" :{" StudentName" :"Chris","StudentHobby" :"Reading"}, ... "StudentScores" :{"MathScore" :97} ... }... );{ "acknowledged" :true, "insertedId" :ObjectId("5c92c2df5259fcd195499809")}

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

> db.queryBySubFieldDemo.find().pretty();

ต่อไปนี้เป็นผลลัพธ์ -

{ "_id" :ObjectId("5c92c2995259fcd195499808"), "StudentPersonalDetails" :{ "StudentName" :"John", "StudentHobby" :"Photography" }, "StudentScores" :{ "MathScore" :56 }}{ "_id" :ObjectId("5c92c2df5259fcd195499809"), "StudentPersonalDetails" :{ "StudentName" :"Chris", "StudentHobby" :"Reading" }, "StudentScores" :{ "MathScore" :97 }}
นี่คือแบบสอบถามตามฟิลด์ย่อย -

> db.queryBySubFieldDemo.find({"StudentPersonalDetails.StudentName":"Chris"}).pretty();

ต่อไปนี้เป็นผลลัพธ์ -

{ "_id" :ObjectId("5c92c2df5259fcd195499809"), "StudentPersonalDetails" :{ "StudentName" :"Chris", "StudentHobby" :"Reading" }, "StudentScores" :{ "MathScore"}}