MongoDB Liste de tous les index pour une base de données

MongoDB Liste de tous les index pour une base de données
Nous pouvons utiliser la méthode ListIndexes pour récupérer tous les index dans une collection donnée. Cette méthode est une commande de base de données et est prise en charge dans le pilote spécifique à la langue.

La syntaxe de commande est comme indiqué dans les éléments suivants:

db.RunCommand (

listindexes: "",
curseur: BatchSize: ,
commentaire:

)

Les paramètres pris en charge sont les suivants:

  1. Collection_name - Spécifie le nom de la collection cible en tant que type de chaîne.
  2. BatchSize - Spécifie la taille du lot pour le curseur.
  3. Commentaire - Commentaire de l'utilisateur pour la commande spécifiée.

Considérez l'exemple de requête suivante:

db.runCommand (listIndexes: "hulu")

La requête donnée invoque la commande ListIndexes sur la collection «Hulu». Cela devrait renvoyer tous les index de la collection spécifique comme indiqué dans la sortie suivante:


le curseur:
id: long ("0"),
NS: «Divertissement.Hulu ',
premier lot: [
v: 2, clé: _id: 1, nom: '_id_',

V: 2,
clé: release_year: 1,
Nom: 'release_year_index',
Carse: Faux

]]
,
OK: 1

Puisque nous ne spécifions pas la taille du lot pour le curseur, la commande renvoie tous les résultats de la commande ListIndexes.

Pour afficher un seul résultat, nous pouvons définir le paramètre BatchSize sur 1 comme indiqué dans ce qui suit:

db.RunCommand (ListIndexes: "Hulu", curseur: BatchSize: 1)

Dans ce cas, la commande doit renvoyer une sortie comme indiqué dans ce qui suit:


le curseur:
ID: Long ("6609474838031556340"),
NS: «Divertissement.Hulu ',
FirstBatch: [v: 2, clé: _id: 1, nom: '_id_']
,
OK: 1

Vous pouvez augmenter le lot pour obtenir plus d'informations sur les index de la collection.

MongoDB montre tous les index dans une base de données

Supposons que nous souhaitons afficher tous les index dans toutes les collections d'une base de données spécifiée. Pour cela, nous pouvons utiliser la fonction foreach pour itérer sur chaque collection dans la base de données et énumérer ses index correspondants.

Un exemple de requête est comme indiqué dans ce qui suit:

db.getCollectionNames ().foreach (fonction (collection) all_indexes = db.getCollection (collection).listIndexes (); print ("index de" + collection + ": ->"); printjson (all_indexes); );

La requête précédente commence par récupérer tous les noms de collection dans une base de données donnée à l'aide de la méthode GetCollectionNames (). Nous allons ensuite parcourir chaque collection dans la base de données et les passer comme paramètres de la méthode getIndexes ().

Enfin, nous enregistrons chaque résultat dans la variable ALL_INDEXES. Pour obtenir une sortie lisible par l'homme, nous utilisons les méthodes d'impression et de printjson pour une meilleure mise en forme.

Cela devrait renvoyer toutes les collections et leurs index correspondants comme indiqué dans ce qui suit:

[
v: 2, clé: _id: 1, nom: '_id_',

V: 2,
clé: _fts: 'text', _ftsx: 1,
Nom: «note»,
Carse: Faux,
Poids: Note: 1,
default_language: 'anglais',
Langue_override: «Langue»,
TextIndexversion: 3

]]
Index d'Amazon_prime: ->
[
v: 2, clé: _id: 1, nom: '_id_',

V: 2,
clé: _fts: 'text', _ftsx: 1,
Nom: 'content_type',
Carse: Faux,
Poids: Type: 1,
default_language: 'anglais',
Langue_override: «Langue»,
TextIndexversion: 3

]]
Index de Hulu: ->
[
v: 2, clé: _id: 1, nom: '_id_',

V: 2,
clé: release_year: 1,
Nom: 'release_year_index',
Carse: Faux

]]

Dans notre exemple, nous avons trois collections, chacune avec un index comme indiqué dans le tableau de sortie précédent.

Conclusion

Dans cet article, nous avons discuté de la façon d'utiliser la méthode ListIndexes () pour obtenir la liste de tous les index dans une collection donnée. Nous avons également discuté de la façon de créer un script simple pour obtenir tous les index et leur collection associée dans une base de données donnée.

Codage heureux!