English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Collection fixe MongoDB

Collection fixeEst une collection circulaire de taille fixe, suivant l'ordre d'insertion, pour soutenir des opérations de création, lecture et suppression à haute performance. Le circulaire signifie que lorsque la taille fixe allouée à la collection est épuisée, elle commence à supprimer les documents les plus anciens de la collection sans fournir de commande explicite.

Si la mise à jour entraîne une augmentation de la taille du document, limiter les mises à jour des documents. Comme les collections fixes stockent les documents dans l'ordre du stockage sur le disque, elles peuvent garantir que la taille des documents ne dépassera pas la taille allouée sur le disque. Les collections fixes sont particulièrement adaptées pour stocker des informations de journal, des données de cache ou tout autre grand volume de données.

Créer une collection fixe

Pour créer une collection avec une limite supérieure, nous utilisons la commande createCollection habituelle, mais nous changeonscappedL'option est réglée surtrueet spécifier la taille maximale de la collection (en octets).

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

En plus de la taille de la collection, nous pouvons également utilisermaxParamètre-Limiter le nombre de documents dans la collection-

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

Pour vérifier si la collection est limitée, utilisez le code suivantisCappedCommande-

>db.cappedLogCollection.isCapped()

Si vous avez l'intention de le convertir en une collection existante avec une limite supérieure, vous pouvez utiliser le code suivant pour le traiter-

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

Ce code convertira notre collection existantepostsPour les collections à plafond.

Recherche de collection à plafond

Par défaut, les requêtes de recherche sur les collections à plafond affichent les résultats dans l'ordre d'insertion. Cependant, si vous souhaitez récupérer les documents dans un ordre inverse, utilisezsortLes commandes montrées dans le code suivant-

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

Il y a quelques autres points importants à noter sur les collections à plafond-

  • Nous ne pouvons pas supprimer de documents dans la collection à plafond.

  • Il n'y a pas d'index par défaut dans la collection à plafond, même pas sur le champ _id.

  • Lors de l'insertion d'un nouveau document, MongoDB n'a pas besoin de chercher physiquement sur le disque un emplacement pour容纳 le nouveau document. Il peut insérer le nouveau document aveuglément à la fin de la collection. Cela rend les opérations d'insertion dans la collection très rapides.

  • De même, lors de la lecture des documents, MongoDB renvoie les documents dans le même ordre que celui sur le disque. Cela rend les opérations de lecture très rapides.