Dans MongoDB, vous pouvez créer un index sur une collection en utilisant le createIndex()
méthode, la createIndexes()
ou la méthode createIndexes
commande d'administration.
Le createIndex()
Méthode
Le db.collection.createIndex()
La méthode crée un index sur la collection spécifiée. C'est un wrapper pour les createIndexes
commande d'administration.
Exemple :
db.pets.createIndex( { weight: -1 } )
Cela crée un index sur la collection d'animaux de compagnie. C'est un index décroissant sur le weight
domaine. Nous savons qu'il est décroissant car nous avons spécifié -1
. Si nous avions spécifié 1
ça aurait été ascendant.
Un index composé est un index défini sur plusieurs champs. Vous pouvez créer un index composé en séparant chaque champ par une virgule.
Exemple :
db.pets.createIndex( { name: 1, type: -1 } )
Cela crée un index composé sur le name
champ (par ordre croissant) et le type
champ (par ordre décroissant).
Le createIndexes()
Méthode
Le db.collection.createIndexes()
La méthode crée un ou plusieurs index sur une collection Cette méthode est également un wrapper pour le createIndexes
commande d'administration.
Lorsque vous créez des index avec le createIndexes()
méthode, vous devez fournir les champs dans un tableau. Vous devez le faire même si vous ne créez qu'un seul index.
Exemple :
db.pets.createIndexes( [ { weight: -1 } ] )
Cela fait la même chose que le premier exemple. Il crée un index décroissant sur le weight
champ.
Pour créer plusieurs index, séparez le document de chaque index par une virgule.
Exemple :
db.pets.createIndexes( [ { name: 1 }, { weight: -1 } ] )
Vous pouvez également créer des index composés avec createIndexes()
. Pour ce faire, définissez simplement l'index composé dans le document pour cet index.
Par conséquent, nous pourrions faire ce qui suit :
db.pets.createIndexes( [ { name: 1, type: -1 }, { weight: -1 } ] )
Cela crée un index composé pour le name
et type
champs, et un index séparé pour le weight
champ.
Les createIndexes
Commande
Les createIndexes
La commande d'administration crée un ou plusieurs index sur une collection Les deux méthodes précédentes sont des enveloppes autour de cette commande.
Par conséquent, nous pouvons utiliser le createIndexes
commande pour créer les index que nous avons fait dans les exemples précédents.
Voici un exemple de création d'un index sur le name
champ :
db.runCommand(
{
createIndexes: "pets",
indexes: [
{
key: { "name" : 1 },
name: "idx_name_1"
}
]
}
)
Dans les exemples précédents, nous avons laissé MongoDB nommer nos index, mais dans ce cas, nous avons nommé l'index idx_name_1
.
Voici un exemple de création de plusieurs index :
db.runCommand(
{
createIndexes: "pets",
indexes: [
{
key: { "name" : 1, type: -1 },
name: "idx_name_1_type_-1"
},
{
key: { "weight" : -1 },
name: "idx_weight_-1"
}
]
}
)
Dans ce cas, le premier index est un index composé sur le name
et type
champs, et nous l'avons nommé idx_name_1_type_-1
.
Le deuxième index est sur le weight
champ et nous l'avons appelé idx_weight_-1
.
Index génériques
Les trois approches ci-dessus prennent en charge les index génériques à partir de MongoDB 4.2 (la featureCompatibilityVersion
doit être au moins 4.2
pour créer des index génériques).
Les index génériques sont utiles pour les collections qui contiennent des données non structurées avec différents champs dans différentes hiérarchies.
Voir Comment créer un index générique dans MongoDB pour des exemples.
Documentation MongoDB
Vous trouverez ci-dessous des liens vers la documentation MongoDB pour chacun des éléments ci-dessus :
db.collection.createIndex()
db.collection.createIndexes()
createIndexes