2012-06-12 6 views
2

J'ai une collection qui sert de cache. Comment puis-je limiter le nombre de documents à 5M dans cette collection. Remarque: l'élément de cache pouvant être mis à jour existera dans le cache. J'utilise essayé d'utiliser plafonné, mais l'élément enregistre dans une collection plafonnée ne peut pas être modifié.Limiter le nombre de documents dans une collection dans mongodb

Y a-t-il un moyen de faire cela? (je voudrais éviter de supprimer l'élément, puis insérer la mise à jour un)

Répondre

1

Malheureusement, vous ne pouvez pas faire grand-chose ici. Comme vous l'avez noté, les documents dans les collections plafonnées ne peuvent pas être modifiés. Et aussi, vous ne pouvez pas spécifier une limite dans les documents, c'est en mégaoctets, IIRC. Donc, votre meilleur pari est d'utiliser la collecte normale et avoir un travail périodique qui va vérifier la collection pour les débordements et nettoiera les documents anciens.

0

db.createCollection ("collectionName", {coiffé: true, taille: 10 000, max: 1000})

cette commande est utilisée pour créer la collection de taille fixe où

collectionName: nom de la collection sur whicg vous voulez mettre limite
plafonnés: true (taille fixe collection)
taille: taille maximale de collection en octets
max: limite à la no. de documents

0

Bien que cela puisse être un peu trop tard, avec 3.x MongoDB cela est possible en utilisant quelque chose sur les lignes CreateCollectionOptions.

Un exemple de code dans Java de le faire serait:

mongoClient.getDatabase(databaseName).createCollection(collectionName, 
    new CreateCollectionOptions().capped(true).sizeInBytes(5120).maxDocuments(100)); 

où 5120 est la taille en octets pour 5 Mo et 100 est une limite supérieure du nombre de documents que vous pouvez stocker dans la collection .

Questions connexes