คุณสามารถใช้sureIndex() เพื่อเพิ่มประสิทธิภาพของเมธอด count() ใน MongoDB เพื่อให้เข้าใจแนวคิด ให้เราสร้างคอลเลกชันพร้อมกับเอกสาร แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้ -
> db.countPerformanceDemo.insertOne({"StudentName":"John","StudentCountryName":"US"});{ "acknowledged" :true, "insertedId" :ObjectId("5c8ebcf82f684a30fbdfd55f")}> db countPerformanceDemo.insertOne({"StudentName":"Mike","StudentCountryName":"สหราชอาณาจักร"});{ "รับทราบ" :จริง "insertedId" :ObjectId("5c8ebd042f684a30fbdfd560")}> db.countPerformanceDemo.insertOne({" StudentName":"David","StudentCountryName":"AUS"});{ "acknowledged" :true, "insertedId" :ObjectId("5c8ebd112f684a30fbdfd561")}> db.countPerformanceDemo.insertOne({"StudentName":"แครอล" ,"StudentCountryName":"US"});{ "acknowledged" :true, "insertedId" :ObjectId("5c8ebd1a2f684a30fbdfd562")}> db.countPerformanceDemo.insertOne({"StudentName":"Bob","StudentCountryName":" สหราชอาณาจักร"});{ "รับทราบ" :จริง "insertedId" :ObjectId("5c8ebd212f684a30fbdfd563")}> db.countPerformanceDemo.insertOne({"StudentName":"David","StudentCountryName":"UK"});{ "รับทราบ" :จริง "insertedId" :ObjectId("5c8ebd9a2f684a30f bdfd564")}> db.countPerformanceDemo.insertOne({"StudentName":"David","StudentCountryName":"US"});{ "acknowledged" :true, "insertedId" :ObjectId("5c8ebd9e2f684a30fbdfd565")}ก่อน>แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังต่อไปนี้ −
> db.countPerformanceDemo.find().pretty();ต่อไปนี้เป็นผลลัพธ์ -
{ "_id" :ObjectId("5c8ebcf82f684a30fbdfd55f"), "StudentName" :"John", "StudentCountryName" :"US"}{ "_id" :ObjectId("5c8ebd042f684a30fbdfdentName"), "StudentName":"StudentName":"StudentName" , "StudentCountryName" :"UK"}{ "_id" :ObjectId("5c8ebd112f684a30fbdfd561"), "StudentName" :"David", "StudentCountryName" :"AUS"}{ "_id" :ObjectId("5c8ebdf1afd68, StudentName" :"Carol", "StudentCountryName" :"US"}{ "_id" :ObjectId("5c8ebd212f684a30fbdfd563"), "StudentName" :"Bob", "StudentCountryName" :"UK"}{ "_id" :ObjectId( "5c8ebd9a2f684a30fbdfd564"), "StudentName" :"David", "StudentCountryName" :"UK"}{ "_id" :ObjectId("5c8ebd9e2f684a30fbdfd565"), "StudentCountryName" :"StudentCount" :"StudentCount" , /pre>นี่คือแบบสอบถามเพื่อให้ได้รูปแบบที่มีประสิทธิภาพสูงของ count() -
> db.countPerformanceDemo.ensureIndex({"StudentName":1});{ "createdCollectionAutomatically" :false, "numIndexesBefore" :1, "numIndexesAfter" :2, "ok" :1}ตอนนี้ใช้เมธอด count() นับระเบียนด้วย StudentName “David”:
> db.countPerformanceDemo.find({"StudentName":"David"}).count();ต่อไปนี้เป็นผลลัพธ์ -
3