2013-05-13 8 views
6

का उपयोग कर मोंगोडीबी संग्रह को छोड़ना संभव है? मेरे पास ऑटो-जेनरेट किया गया mongoDB संग्रह है कि एक निश्चित पल में मुझे छोड़ने की जरूरत है। मैं उनके संग्रह नाम पैटर्न जानता हूं और वे बहुत अधिक हैं, इसलिए हाथ से उन्हें छोड़ना एक विकल्प नहीं है। रेगेक्स का उपयोग करने के लिए मैंने जो कुछ उदाहरण देखे थे, वे क्वेरीज शामिल थे लेकिन डेटाबेस कमांड के साथ नहीं। मुझे पता है कि मैं अपने संग्रह से सभी संग्रहों और फ़िल्टरिंग पर पुन: प्रयास कर सकता हूं, मैं इसे काम कर सकता हूं लेकिन यदि संभव हो तो मैं अधिक आसान और एकल कमांड (मैं इसे सीधे खोल में उपयोग करना चाहता हूं) की तलाश कर रहा हूं :)रेगेक्स

कोई भी सुझाव?

धन्यवाद!

+1

जांच इन: http://stackoverflow.com/questions/11206890/how-to-delete-lots-of-mongodb-collections-at-once – jmingov

+0

आप स्वत: पैदा करते हैं और एक बहुत ऑटो छोड़ जब संग्रहों की आप शायद कुछ गलत कर रहे हैं। – Philipp

+0

@ फिलिप यह एक सुंदर ठोस उपयोग केस है :) – jarandaf

उत्तर

12

आप MongoDB कंसोल का उपयोग कर ऐसा कर सकते हैं:

regExp = /test/; 
db.getCollectionNames().filter(function(name){ 
    return name.match(regExp) 
}).forEach(function(name){ 
    db.getCollection(name).drop() 
}); 

आप अपने संग्रह नाम से मेल करने के लिए किसी भी regexp उपयोग कर सकते हैं।

+0

आप सही हैं, ऐसा लगता है कि यह एकमात्र काम करने वाला दृष्टिकोण है (हालांकि मैं इसे टालना चाहता था)। यदि जल्द ही कोई अन्य संभावित समाधान प्रदान नहीं किया जाता है, तो मैं इसे एक उत्तर के रूप में स्वीकार करूंगा। आपके समय के लिए धन्यवाद! – jarandaf

4
db.getCollectionNames().forEach(function(c) { 
    if(c.match("^system.indexes")) { 
     db.getCollection(c).drop(); 
    } 
    });