кодесурса
«MongoDB

MongoDB: метод db.collection.createIndex ()

script1adsense2code
script1adsense3code

db.collection.createIndex

Метод db.collection.createIndex () используется для построения индекса коллекции.

Синтаксис:

 db.collection.createIndex (ключи, опции)

Параметры:

название Описание Необходимые /
Необязательный
Тип
ключи Документ, который содержит пары полей и значений, где поле является ключом индекса, а значение описывает тип индекса для этого поля. Для восходящего индекса в поле укажите значение 1; для нисходящего индекса укажите значение -1.
MongoDB поддерживает несколько различных типов индексов, включая текстовые, геопространственные и хешированные индексы. См. Типы индексов для получения дополнительной информации.
необходимые документ
опции Документ, содержащий набор параметров, управляющих созданием индекса. Необязательный документ

Опции

Следующие параметры доступны для всех типов индексов, если не указано иное:

поле Тип Описание
фон логический Необязательный. Создает индекс в фоновом режиме, чтобы создание индекса не блокировало другие действия базы данных. Укажите true для построения в фоновом режиме. Значение по умолчанию неверно.
уникальный логический Необязательный. Создает уникальный индекс, чтобы коллекция не принимала вставку документов, в которых ключ или ключи индекса соответствуют существующему значению в индексе. Укажите true, чтобы создать уникальный индекс. Значение по умолчанию неверно.
название строка Необязательный. Название индекса. Если не указано, MongoDB генерирует имя индекса путем объединения имен индексированных полей и порядка сортировки.
Независимо от того, задан ли пользователь или сгенерирован MongoDB, имена индексов, включая их полное пространство имен (т. Е. Database.collection), не могут быть длиннее, чем предел имени индекса.
редкий логический Необязательный. Если true, индекс ссылается только на документы с указанным полем. Эти индексы занимают меньше места, но ведут себя по-разному в некоторых ситуациях (особенно при сортировке). Значение по умолчанию неверно. См. Разреженные индексы для получения дополнительной информации.
expireAfterSeconds целое число Необязательный. Задает значение в секундах в виде TTL для управления продолжительностью хранения документов в этой коллекции MongoDB. Посмотрите Истечение данных из Коллекций, Установив TTL для получения дополнительной информации об этой функциональности. Это относится только к индексам TTL.
v индекс версии Необязательный. Номер версии индекса. Версия индекса по умолчанию зависит от версии mongod, работающей при создании индекса. До версии 2.0 это значение было 0; версии 2.0 и более поздние используют версию 1, которая обеспечивает меньший и более быстрый индексный формат. Укажите другую версию индекса только в необычных ситуациях.
storageEngine документ Необязательный. Позволяет пользователям указывать конфигурацию для механизма хранения на основе индекса при создании индекса. Значение параметра storageEngine должно иметь следующий вид: {<имя-механизма-хранилища>: <параметры>} Конфигурация механизма хранения, указанная при создании индексов, проверяется и регистрируется в журнале операций во время репликации для поддержки наборов реплик с элементами, которые используют разные двигатели хранения.

Образец документа в коллекции ресторанов:


{
  "address": {
     "building": "1007",
     "coord": [ -73.856077, 40.848447 ],
     "street": "Morris Park Ave",
     "zipcode": "10462"
  },
  "borough": "Bronx",
  "cuisine": "Bakery",
  "grades": [
     { "date": { "$date": 1393804800000 }, "grade": "A", "score": 2 },
     { "date": { "$date": 1378857600000 }, "grade": "A", "score": 6 },
     { "date": { "$date": 1358985600000 }, "grade": "A", "score": 10 },
     { "date": { "$date": 1322006400000 }, "grade": "A", "score": 9 },
     { "date": { "$date": 1299715200000 }, "grade": "B", "score": 14 }
  ],
  "name": "Morris Park Bake Shop",
  "restaurant_id": "30075445"
}
......

Пример: создание восходящего индекса в одном поле

В следующем примере создается восходящий индекс на поле кухни.

> db.restaurants.createIndex( { "cuisine": 1 } );
{
        "createdCollectionAutomatically" : false,
        "numIndexesBefore" : 1,
        "numIndexesAfter" : 2,
        "ok" : 1

Пример: создание индекса для нескольких полей

В следующем примере создается составной индекс для поля кухни (в порядке возрастания) и поля почтового индекса (в порядке убывания).

> db.restaurants.createIndex( { "cuisine": 1 , "address.zipcode": -1 } );
{
        "createdCollectionAutomatically" : false,
        "numIndexesBefore" : 2,
        "numIndexesAfter" : 3,
        "ok" : 1
}

Получить данные о ресторанах здесь

Поведение

Метод createIndex () имеет поведение, описанное здесь.

  • Чтобы добавить или изменить параметры индекса, вы должны удалить индекс с помощью метода dropIndex () и выполнить другую операцию createIndex () с новыми параметрами.
    Если вы создаете индекс с одним набором параметров, а затем запускаете метод createIndex () с теми же полями индекса и различными параметрами без предварительного удаления индекса, createIndex () не будет перестраивать существующий индекс с новыми параметрами.
  • Если вы вызываете несколько методов createIndex () с одной и той же спецификацией индекса в одно и то же время, только первая операция будет выполнена успешно, все остальные операции не будут иметь никакого эффекта.
  • Не фоновые операции индексации блокируют все остальные операции в базе данных.
  • MongoDB не будет создавать индекс для коллекции, если запись индекса для существующего документа превышает максимальную длину ключа индекса.

Предыдущий: метод db.collection.count ()
Далее: метод db.collection.dataSize ()

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code