2010-10-19 3 views

답변

5

캡션 된 컬렉션을 일반 컬렉션으로 변환하는 간단한 방법이 있습니다. 간단한 개체를 일반 컬렉션으로 복사하고 원래 캡핑 된 컬렉션을 제거하는 것입니다.

 

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

변환을 되돌리기위한 명령을 찾지 못했기 때문에 유일한 옵션은 모든 요소를 ​​새로운 컬렉션으로 흘려 보내는 것입니다. 이는 수치입니다. 나는 그들이 그것을 해결하기를 바랍니다. –

-1

나는 방법이 있다고 생각합니다! 이것이 방탄인지 확실하지는 않지만 시험해 보았습니다.

db.num_coll.convertToCapped(new_size) 

그리고 그 이후로 작동합니다.

+0

이것은 방금 처리 된 모음의 용량을 변경하며 모음을 "캡슐 해제"하지 않습니다. – Tom

0

스크립트를 사용하지 않고 동일합니다.

db.collection.copyTo("collection_temp") 
    db.collection.drop() 
    db.collection_temp.renameCollection("collection") 
관련 문제