sql >> Base de Datos >  >> NoSQL >> MongoDB

3 formas de crear un índice en MongoDB

En MongoDB, puede crear un índice en una colección utilizando createIndex() método, el createIndexes() método, o createIndexes comando de administración.

El createIndex() Método

db.collection.createIndex() El método crea un índice en la colección especificada. Es un contenedor para createIndexes comando de administración.

Ejemplo:

db.pets.createIndex( { weight: -1 } )

Esto crea un índice en la colección de mascotas. Es un índice descendente en el weight campo. Sabemos que es descendente porque especificamos -1 . Si hubiéramos especificado 1 habría sido ascendente.

Un índice compuesto es uno que se define en varios campos. Puede crear un índice compuesto separando cada campo con una coma.

Ejemplo:

db.pets.createIndex( { name: 1, type: -1 } )

Esto crea un índice compuesto en el name campo (en orden ascendente) y el type campo (en orden descendente).

El createIndexes() Método

db.collection.createIndexes() El método crea uno o más índices en una colección Este método también es un contenedor para createIndexes comando de administración.

Cuando crea índices con createIndexes() método, debe proporcionar los campos en una matriz. Debe hacer esto incluso si solo está creando un único índice.

Ejemplo:

db.pets.createIndexes( [ { weight: -1 } ] )

Eso hace lo mismo que hace el primer ejemplo. Crea un índice descendente en el weight campo.

Para crear varios índices, separe el documento de cada índice con una coma.

Ejemplo:

db.pets.createIndexes( [ { name: 1 }, { weight: -1 } ] )

También puede crear índices compuestos con createIndexes() . Para hacer esto, simplemente defina el índice compuesto dentro del documento para ese índice.

Por lo tanto, podríamos hacer lo siguiente:

db.pets.createIndexes( [ { name: 1, type: -1 }, { weight: -1 } ] )

Eso crea un índice compuesto para el name y type campos y un índice separado para el weight campo.

Los createIndexes Comando

Los createIndexes El comando de administración crea uno o más índices en una colección. Los dos métodos anteriores son contenedores de este comando.

Por lo tanto, podemos usar createIndexes comando para crear los índices que hicimos en los ejemplos anteriores.

Aquí hay un ejemplo de cómo crear un índice en el name campo:

db.runCommand(
  {
    createIndexes: "pets",
    indexes: [
      {
        key: { "name" : 1 },
        name: "idx_name_1"
      }
    ]
  }
)

En los ejemplos anteriores dejamos que MongoDB nombre nuestros índices, pero en este caso llamamos al índice idx_name_1 .

Este es un ejemplo de creación de múltiples índices:

db.runCommand(
  {
    createIndexes: "pets",
    indexes: [
      {
        key: { "name" : 1, type: -1 },
        name: "idx_name_1_type_-1"
      },
      {
        key: { "weight" : -1 },
        name: "idx_weight_-1"
      }
    ]
  }
)

En este caso, el primer índice es un índice compuesto en name y type campos, y lo llamamos idx_name_1_type_-1 .

El segundo índice está en el weight y lo llamamos idx_weight_-1 .

Índices comodín

Los tres enfoques anteriores admiten índices comodín a partir de MongoDB 4.2 (la featureCompatibilityVersion debe ser al menos 4.2 para crear índices comodín).

Los índices comodín son útiles para colecciones que contienen datos no estructurados con diferentes campos en diferentes jerarquías.

Consulte Cómo crear un índice comodín en MongoDB para ver ejemplos.

Documentación de MongoDB

A continuación hay enlaces a la documentación de MongoDB para cada uno de los anteriores:

  • db.collection.createIndex()
  • db.collection.createIndexes()
  • createIndexes