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

วางดัชนีทั้งหมดจากคอลเลกชันทั้งหมดในฐานข้อมูล MongoDB โดยใช้บรรทัดคำสั่ง?


ต่อไปนี้เป็นรูปแบบการวางดัชนีทั้งหมดจากคอลเลกชันทั้งหมดในฐานข้อมูล MongoDB โดยใช้บรรทัดคำสั่ง

db.getCollectionNames().forEach(function(yourVariableName) {
   db.runCommand({dropIndexes: yourVariableName, index: "*"});
});

ไวยากรณ์ด้านบนจะลบดัชนีทั้งหมดยกเว้น _id

ให้เราตรวจสอบฐานข้อมูลปัจจุบัน ต่อไปนี้เป็นแบบสอบถาม

> db

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

Test

ต่อไปนี้เป็นแบบสอบถามเพื่อให้เราแสดงดัชนีบางส่วนจากคอลเลกชันก่อนที่จะวางดัชนี

> db.indexingDemo.getIndexes();

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

[
   {
      "v" : 2,
      "key" : {
         "_id" : 1
      },
      "name" : "_id_",
      "ns" : "test.indexingDemo"
   },
   {
      "v" : 2,
      "key" : {
         "StudentFavouriteSubject" : 1
      },
      "name" : "StudentFavouriteSubject_1",
      "ns" : "test.indexingDemo",
      "background" : true
   }
]

ต่อไปนี้เป็นแบบสอบถามเพื่อวางดัชนีทั้งหมดจากคอลเลกชันทั้งหมดในฐานข้อมูล MongoDB

> db.getCollectionNames().forEach(function(allCollectionName) {
...    db.runCommand({dropIndexes: allCollectionName, index: "*"});
... });

ต่อไปนี้เป็นแบบสอบถามเพื่อตรวจสอบว่าดัชนีลดลงหรือไม่

> db.indexingDemo.getIndexes();

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

[
   {
      "v" : 2,
      "key" : {
         "_id" : 1
      },
      "name" : "_id_",
      "ns" : "test.indexingDemo"
   }
]

ดูตัวอย่างผลลัพธ์ด้านบน ดัชนีหลุดสำเร็จ