ในการปรับปรุงฟิลด์การสืบค้นใน MongoDB คุณต้องใช้ดัชนี ให้เราสร้างคอลเลกชันที่มีเอกสาร
> db.improveQueryDemo.insertOne( ... { ... "PlayerDetails":[ ... {"PlayerName": "John", "PlayerGameScore": 5690}, ... {"PlayerName": "Carol", "PlayerGameScore": 2690}, ... ] ... } ... ); { "acknowledged" : true, "insertedId" : ObjectId("5c9dbaf875e2eeda1d5c3670") }
ต่อไปนี้เป็นแบบสอบถามเพื่อแสดงเอกสารทั้งหมดจากคอลเลกชันโดยใช้วิธี find()
> db.improveQueryDemo.find().pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{ "_id" : ObjectId("5c9dbaf875e2eeda1d5c3670"), "PlayerDetails" : [ { "PlayerName" : "John", "PlayerGameScore" : 5690 }, { "PlayerName" : "Carol", "PlayerGameScore" : 2690 } ] }
ตอนนี้ คุณต้องสร้างดัชนีบนฟิลด์เพื่อปรับปรุงการสืบค้น ต่อไปนี้เป็นแบบสอบถาม
> db.improveQueryDemo.ensureIndex({"PlayerDetails.PlayerName":1});
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{ "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
ตอนนี้คุณสามารถค้นหาด้วยการจับคู่แบบตรงทั้งหมด ต่อไปนี้เป็นแบบสอบถาม
> db.improveQueryDemo.find({"PlayerDetails.PlayerName":"Carol"}).pretty();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้
{ "_id" : ObjectId("5c9dbaf875e2eeda1d5c3670"), "PlayerDetails" : [ { "PlayerName" : "John", "PlayerGameScore" : 5690 }, { "PlayerName" : "Carol", "PlayerGameScore" : 2690 } ] }