Урок за индексиране на MongoDB - Пример за createIndex (), dropindex ()

Съдържание:

Anonim

Индексите са много важни във всяка база данни и с MongoDB не е по-различно. С използването на индекси, изпълнението на заявки в MongoDB става по-ефективно.

Ако имате колекция с хиляди документи без индекси и след това поискате да намерите определени документи, тогава в такъв случай MongoDB ще трябва да сканира цялата колекция, за да намери документите. Но ако имате индекси, MongoDB ще използва тези индекси, за да ограничи броя на документите, които трябва да бъдат търсени в колекцията.

Индексите са специални набори от данни, които съхраняват частична част от данните на колекцията. Тъй като данните са частични, става по-лесно да ги прочетете. Този частичен набор съхранява стойността на конкретно поле или набор от полета, подредени по стойността на полето.

В този урок ще научите -

  • Разбиране на въздействието на индексите
  • Как да създадете индекси: createIndex ()
  • Как да намерите индекси: getindexes ()
  • Как да пуснете индекси: dropindex ()

Разбиране на въздействието на индексите

Сега, въпреки че от въведението видяхме, че индексите са добри за заявки, но твърде много индекси могат да забавят други операции като операцията за вмъкване, изтриване и актуализиране.

Ако често се извършват операции по вмъкване, изтриване и актуализиране на документи, тогава индексите ще трябва да се променят толкова често, което просто ще бъде режийни разходи за колекцията.

Примерът по-долу показва пример за това какви стойности на полета могат да представляват индекс в колекция. Индексът може да се основава или само на едно поле в колекцията, или може да се основава на множество полета в колекцията.

В примера по-долу Employeeid "1" и EmployeeCode "AA" се използват за индексиране на документите в колекцията. Така че, когато се прави търсене на заявка, тези индекси ще се използват за бързо и ефективно намиране на необходимите документи в колекцията.

Така че дори ако заявката за търсене се основава на EmployeeCode "AA", този документ ще бъде върнат.

Как да създадете индекси: createIndex ()

Създаването на индекс в MongoDB се извършва с помощта на метода " createIndex ".

Следващият пример показва как се добавя индекс към колекцията. Да приемем, че имаме същата колекция от служители, която има имената на полетата „Employeeid“ и „EmployeeName“.

db.Employee.createIndex({Employeeid:1})

Обяснение на кода:

  1. Методът createIndex се използва за създаване на индекс, базиран на "Employeeid" на документа.
  2. Параметърът '1' показва, че когато индексът се създава със стойностите на полето "Employeeid", те трябва да бъдат сортирани във възходящ ред. Моля, обърнете внимание, че това се различава от полето _id (полето id се използва за уникална идентификация на всеки документ в колекцията), което се създава автоматично в колекцията от MongoDB. Документите вече ще бъдат сортирани според Employeeid, а не полето _id.

Ако командата се изпълни успешно, ще се покаже следният изход:

Изход:

  1. NumIndexesBefore: 1 показва броя на стойностите на полетата (Действителните полета в колекцията), които са били там в индексите преди изпълнението на командата. Не забравяйте, че всяка колекция има полето _id, което също се брои като стойност на полето към индекса. Тъй като полето за индекс _id е част от колекцията при първоначалното му създаване, стойността на numIndexesBefore е 1.
  2. NumIndexesAfter: 2 показва броя на стойностите на полето, които са били там в индексите след изпълнението на командата.
  3. Тук изходът „ok: 1“ указва, че операцията е била успешна и новият индекс се добавя към колекцията.

Горният код показва как да създадете индекс въз основа на една стойност на полето, но може да се създаде и индекс въз основа на множество стойности на полето.

Следващият пример показва как това може да се направи;

db.Employee.createIndex({Employeeid:1, EmployeeName:1])

Обяснение на кода:

  1. Методът createIndex сега отчита множество стойности на полета, които сега ще доведат до създаване на индекса въз основа на "Employeeid" и "EmployeeName". Employeeid: 1 и EmployeeName: 1 показва, че индексът трябва да бъде създаден на тези 2 полеви стойности, като: 1 показва, че трябва да бъде във възходящ ред.

Как да намерите индекси: getindexes ()

Намирането на индекс в MongoDB се извършва с помощта на метода "getIndexes" .

Следващият пример показва как това може да се направи;

db.Employee.getIndexes()

Обяснение на кода:

  1. Методът getIndexes се използва за намиране на всички индекси в колекция.

Ако командата се изпълни успешно, ще се покаже следният изход:

Изход:

  1. Изходът връща документ, който просто показва, че в колекцията има 2 индекса, което е полето _id, а другото е полето id на служителя. : 1 показва, че стойностите на полетата в индекса се създават във възходящ ред.

Как да пуснете индекси: dropindex ()

Премахването на индекс в MongoDB се извършва чрез метода dropIndex.

Следващият пример показва как това може да се направи;

db.Employee.dropIndex(Employeeid:1)

Обяснение на кода:

  1. Методът dropIndex взема необходимите стойности на полето, които трябва да бъдат премахнати от индекса.

Ако командата се изпълни успешно, ще се покаже следният изход:

Изход:

  1. NIndexesWas: 3 показва броя на стойностите на полето, които са били там в индексите преди изпълнението на командата. Не забравяйте, че всяка колекция има полето _id, което също се брои като стойност на полето към индекса.
  2. Изходът ok: 1 посочва, че операцията е била успешна и полето "Employeeid" е премахнато от индекса.

За да премахнете всички индекси наведнъж в колекцията, можете да използвате командата dropIndexes.

Следващият пример показва как това може да се направи.

db.Employee.dropIndex()

Обяснение на кода:

  1. Методът dropIndexes ще изпусне всички индекси с изключение на индекса _id.

Ако командата се изпълни успешно, ще се покаже следният изход:

Изход:

  1. NIndexesWas: 2 показва броя на стойностите на полето, които са били там в индексите преди изпълнението на командата.
  2. Не забравяйте отново, че всяка колекция има полето _id, което също се брои като стойност на полето към индекса и което няма да бъде премахнато от MongoDB и това показва това съобщение.
  3. Изходът ok: 1 посочва, че операцията е била успешна.

Обобщение

  • Дефинирането на индексите е важно за по-бързото и ефективно търсене на документи в колекция.
  • Индексите могат да бъдат създадени с помощта на метода createIndex. Индексите могат да се създават само на едно поле или множество стойности на полета.
  • Индексите могат да бъдат намерени чрез метода getIndexes.
  • Индексите могат да бъдат премахнати с помощта на dropIndex за единични индекси или dropIndexes за отпадане на всички индекси.