2010-10-19 1 views

risposta

5

Sembra che ci sia solo un modo per convertire dalla collezione con cappuccio alla normalità - solo semplici oggetti di copia alla normale raccolta e rimuovere la collezione originale limitata.

 

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

Non ho trovato alcun comando per ripristinare la conversione, quindi deve essere vero che l'unica opzione è quella di sommare tutti gli elementi in una nuova raccolta, il che è un peccato. Spero che funzionino. –

-1

Penso che ci sia un modo! Non sono sicuro se questo è a prova di proiettile, ma ho provato:

db.num_coll.convertToCapped(new_size) 

e da allora funziona.

+0

Cambia semplicemente la capacità della collezione ridotta, non "annulla" la raccolta. – Tom

0

come sopra senza utilizzare lo script.

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