Создание индекса по одному полю
На первом этапе вы подключитесь к MongoDB, создадите базу данных с примером коллекции, а затем создадите свой первый индекс по одному полю. Однопольный индекс повышает производительность запросов, которые фильтруют или сортируют по этому конкретному полю.
Сначала откройте MongoDB Shell, набрав mongosh в вашем терминале. Это подключит вас к серверу MongoDB, работающему в вашей среде.
mongosh
Как только вы окажетесь внутри MongoDB Shell, вы увидите приглашение >. Давайте создадим и переключимся на новую базу данных под названием indexlab. Все последующие команды в этой лабораторной работе будут выполняться в этой оболочке, если не указано иное.
use indexlab
Теперь давайте вставим несколько примеров документов в новую коллекцию под названием users. Эти данные будут использоваться на протяжении всей лабораторной работы.
db.users.insertMany([
{ name: "Alice", age: 28, email: "alice@example.com" },
{ name: "Bob", age: 35, email: "bob@example.com" },
{ name: "Charlie", age: 42, email: "charlie@example.com" }
]);
После того как наши данные будут готовы, давайте создадим индекс по полю name. Индекс по одному полю помогает ускорить запросы, которые ищут документы по этому полю.
db.users.createIndex({ name: 1 });
В приведенной выше команде { name: 1 } указывает, что индекс должен быть создан по полю name в порядке возрастания. Использование -1 создаст индекс в порядке убывания.
Чтобы убедиться, что индекс был создан, вы можете вывести список всех индексов для коллекции users.
db.users.getIndexes();
В выводе вы должны увидеть два индекса. Один — это индекс _id по умолчанию, создаваемый MongoDB для каждой коллекции, а другой — это индекс name_1, который вы только что создали.
[
{ "v": 2, "key": { "_id": 1 }, "name": "_id_" },
{ "v": 2, "key": { "name": 1 }, "name": "name_1" }
]