Collections plafonnées MongoDB

Les collections plafonnées MongoDB sont des collections à hautes performances avec une taille fixe. Pour une taille fixe, nous pouvons l'imaginer comme une file circulaire. Lorsque l'espace de la collection est épuisé, les éléments nouvellement insérés écraseront les éléments de tête d'origine !


Créer une collection plafonnée

Nous créons une collection plafonnée via createCollection, et définissons l'option capped sur true :

>db.createCollection("cappedLogCollection",{capped:true,size:10000})

Vous pouvez également spécifier le nombre de documents en ajoutant la propriété max:1000 :

>db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000})

Vérifier si une collection est une collection plafonnée :

>db.cappedLogCollection.isCapped()

Si vous devez convertir une collection existante en collection plafonnée, vous pouvez utiliser la commande suivante :

>db.runCommand({"convertToCapped":"posts",size:10000})

Le code ci-dessus convertit notre collection posts existante en collection plafonnée.


Interroger une collection plafonnée

Les documents d'une collection plafonnée sont stockés dans l'ordre d'insertion. Par défaut, les requêtes renvoient les résultats dans l'ordre d'insertion, et vous pouvez également utiliser $natural pour ajuster l'ordre de retour.

>db.cappedLogCollection.find().sort({$natural:-1})

Caractéristiques des collections plafonnées

Vous pouvez insérer et mettre à jour, mais les mises à jour ne peuvent pas dépasser la taille de la collection, sinon la mise à jour échoue. La suppression n'est pas autorisée, mais vous pouvez appeler drop() pour supprimer toutes les lignes de la collection. Toutefois, après la suppression, vous devez recréer explicitement la collection.

Sur une machine 32-bit, la taille maximale d'une collection plafonnée est d'environ 482.5M ; sur 64-bit, elle n'est limitée que par la taille des fichiers du système.


Propriétés et utilisation des collections plafonnées

Propriétés

  • Propriété 1 : L'insertion dans une collection plafonnée est extrêmement rapide.
  • Propriété 2 : La sortie des requêtes dans l'ordre d'insertion est extrêmement rapide.
  • Propriété 3 : Lors de l'insertion des données les plus récentes, elle peut éliminer les données les plus anciennes.

Utilisation

  • Utilisation 1 : Stocker des informations de journal.
  • Utilisation 2 : Mettre en cache un petit nombre de documents.
Autres extensions