2010-10-19 7 views

Répondre

5

Il semble qu'il n'y ait qu'une seule façon de convertir de la collection plafonnée à la normale - copier simplement des objets dans la collection normale et supprimer la collection originale.

 

db.createCollection("norm_coll"); 
var cur = db.cap_col.find() 
while (cur.hasNext()) {obj = cur.next(); db.norm_coll.insert(obj);} 
 
+0

Je n'ai pas trouvé de commande pour annuler la conversion, il doit donc être vrai que la seule option est de mettre tous les éléments dans une nouvelle collection, ce qui est dommage. J'espère qu'ils travaillent là-dessus. –

-1

Je pense qu'il y a un moyen! Je ne suis pas sûr que ce soit l'épreuve des balles, mais j'ai essayé:

db.num_coll.convertToCapped(new_size) 

et depuis lors, il fonctionne.

+0

Cela modifie simplement la capacité de la collection capée, elle ne "décapsule" pas la collection. – Tom

0

comme ci-dessus sans utiliser de script.

db.collection.copyTo("collection_temp") 
    db.collection.drop() 
    db.collection_temp.renameCollection("collection")