Collections compactes MongoDB

Collections compactes MongoDB

Dans ce tutoriel, nous explorerons comment utiliser la commande compacte dans MongoDB. La commande compacte vous permet de réécrire et de défragmenter les données et les index dans une collection MongoDB sans espace de disque.

Syntaxe de commande

L'extrait de code suivant montre la syntaxe de la commande compacte:

db.RunCommand (

compact:

)

La commande compacte accepte les paramètres suivants:

  1. - Spécifie le nom de la collection à compacter.
  2. force - Un paramètre booléen qui permet à la commande compacte d'exécuter sur le primaire dans un ensemble de répliques donné.
  3. commentaire - Spécifie un commentaire joint à une commande donnée.

Il est bon de garder à l'esprit que l'opération compacte bloque la base de données sur laquelle la commande compacte est exécutée. Cependant, cela n'affecte pas les autres bases de données du cluster.

Exemple:

Illustrons comment utiliser la commande compacte dans MongoDB. Pour voir au mieux les effets de la commande compacte, il est bon de visualiser la taille de la collection avant le compactage.

Supposons que nous ayons une collection appelée Disney qui contient les informations sur les films et émissions de télévision Disney.

Nous pouvons obtenir l'utilisation du disque de collection avant le compactage avec la commande suivante:

cinéma> db.Disney.statistiques (échelle: 1024)

La commande précédente renvoie les statistiques sur la collection spécifiée. Ce qui nous intéresse, c'est la taille de la collection. Un exemple de sortie est comme indiqué:

,
Nindexes: 3,
IndexBuilds: [],
TotalIndexsize: 104,
Totalsize: 400,
indexizes: _id_: 28, title_1: 52, type_1: 24,
SCALEFACTOR: 1024,
OK: 1

Dans ce cas, nous pouvons voir que la collection prend 400 Ko de données avant le compactage.

Exécuter la commande de compactage

Nous pouvons exécuter l'opération de compactage comme indiqué dans ce qui suit:

cinéma> db.RunCommand (compact: "Disney", force: true)

La commande doit renvoyer une sortie comme indiqué dans ce qui suit:

cinéma> db.RunCommand (compact: "Disney", force: true)
bytesfreed: 300, ok: 1

Nous pouvons ensuite vérifier les statistiques d'utilisation comme suit:


Nindexes: 3,
IndexBuilds: [],
TotalIndexsize: 104,
Totalsize: 399,
indexizes: _id_: 28, title_1: 52, type_1: 24,
SCALEFACTOR: 1024,
OK: 1

Nous pouvons voir que la commande libère 30 octets de données.

Conclusion

Dans ce court article, nous avons couvert comment utiliser la commande compacte dans MongoDB pour défragmenter les données d'une collection donnée et libérer un espace disque au système hôte.