2010-10-19 14 views
6

मोंगोडीबी में आप संग्रह को convertToCapped के साथ एक कैप्ड संग्रह में परिवर्तित कर सकते हैं, लेकिन क्या इस बदलाव को वापस करने का कोई तरीका है ताकि एक कैप्ड संग्रह सामान्य हो जाए?पूर्ववत कनवर्ट करें संग्रह में परिवर्तित

उत्तर

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") 
संबंधित मुद्दे