Изглежда коментарът ми е бил малко неразбран, така че ще изясня. Няма особено значение кога го извиквате, стига да бъде извикан в някакъв момент, преди да извикате find() за първи път. С други думи, няма особено значение кога създавате индекса, стига да е там, преди да очаквате да го използвате.
Често срещан модел, който съм виждал, е кодирането на ensureIndex
по същото време (и на същото място) като find()
повикване. ensureIndex
ще провери дали индексът съществува и ще го създаде, ако не съществува. Несъмнено има известно натоварване (макар и много малко) при извикването на secureindex преди извикването на find(), така че е за предпочитане да не правите това.
Извиквам ensureIndex
в код, за да се опрости внедряването и да се избегне необходимостта от отделно управление на db и кодовата база. Компромисът на лекотата на внедряване балансира излишъка от последващи извиквания към secureIndex (за мен.)