In MongoDB puoi convertire una raccolta in una raccolta limitata con il comando convertToCapped
, ma esiste un modo per annullare questa modifica in modo che una raccolta con limite torni normale?Annulla convertToCapped a una raccolta
6
A
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);}
-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")
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. –