mongodb tutorial




एक MongoDB डेटाबेस में सब कुछ हटाएं (10)

  1. सभी उपलब्ध डीबीएस शो डीबीएस सूचीबद्ध करें
  2. आवश्यक डीबी उपयोग चुनें
  3. डेटाबेस db.dropDatabase () // कुछ अतिरिक्त आदेश ड्रॉप करें
  4. एक डीबी शो संग्रह में उपलब्ध सभी संग्रहों की सूची
  5. एक विनिर्देश संग्रह db.collection.drop निकालें ()

उम्मीद है की वो मदद करदे

मैं मोंगोडीबी पर विकास कर रहा हूं। पूरी तरह से गैर-बुरे उद्देश्यों के लिए, मैं कभी-कभी डेटाबेस में सब कुछ उड़ाना चाहता हूं-यानी, प्रत्येक संग्रह को हटाने के लिए, और जो भी हो सकता है, और स्क्रैच से शुरू हो सकता है। क्या कोड की एक पंक्ति है जो मुझे ऐसा करने देगी? एक मोंगोडीबी कंसोल विधि और एक मोंगोडीबी रूबी ड्राइवर विधि दोनों देने के लिए बोनस अंक।


@Robse और @DanH (kudos!) से उत्तरों संकलित करके, मुझे निम्न समाधान मिला है जो पूरी तरह से मुझे संतुष्ट करता है:

db.getCollectionNames().forEach( function(collection_name) { 
  if (collection_name.indexOf("system.") == -1) 
       db[collection_name].drop();
  else  
       db.collection_name.remove({}); 
});

डेटाबेस से कनेक्ट करें, कोड चलाएं।

यह उपयोगकर्ता संग्रह को छोड़कर और सिस्टम संग्रह खाली करके डेटाबेस को साफ़ करता है।


उपयोग

[databaseName]
db.Drop+databaseName();

drop collection 

use databaseName 
db.collectionName.drop();

डेटाबेस को हटाने का सबसे आसान तरीका ब्लॉग कहता है:

> use blog
switched to db blog
> db.dropDatabase();
{ "dropped" : "blog", "ok" : 1 }

मैं पसंद करता हूं

db.your_collection.remove({})

ऊपर

db.your_collection.drop()

यदि आपका संग्रह एक विशेष संग्रह था यानी एक कैप्ड संग्रह या अनन्य के रूप में चिह्नित एक फ़ील्ड वाला संग्रह, ड्रॉपिंग स्वयं संग्रह को साफ़ कर देगा और जब संग्रह फिर से बनाया जाएगा तो यह एक सामान्य संग्रह होगा। आपको फिर से गुणों को परिभाषित करना होगा। तो उपयोग करें

remove()

संग्रह को हटाने और संग्रह के व्यवहार को प्रभावित किए बिना दस्तावेज़ों को साफ़ करने के लिए।


मैंने लंबे समय तक db.dropDatabase() मार्ग का पालन किया, हालांकि यदि आप परीक्षण मामलों के बीच डेटाबेस को पोंछने के लिए इसका उपयोग करने का प्रयास कर रहे हैं तो आपको अंततः डेटाबेस ड्रॉप के बाद सम्मानित नहीं होने वाली इंडेक्स बाधाओं के साथ समस्याएं मिल सकती हैं। नतीजतन, आपको या तो सुनिश्चित करने के लिए गड़बड़ की आवश्यकता होगी इंडेक्स, या एक सरल मार्ग ड्रॉपडाबेस से पूरी तरह से बच जाएगा और केवल एक लूप में प्रत्येक संग्रह से हटा देगा जैसे कि:

db.getCollectionNames().forEach(
  function(collection_name) {
    db[collection_name].remove()
  }
);

मेरे मामले में मैं इसे कमांड लाइन से चला रहा था:

mongo [database] --eval "db.getCollectionNames().forEach(function(n){db[n].remove()});"

यदि आप केवल एक डेटाबेस को हटाना चाहते हैं और इसके उप-संग्रह इसका उपयोग करते हैं:

  • use <database name>;
  • db.dropDatabase();

यदि आप मोंगो में सभी डेटाबेस को मिटाना चाहते हैं तो इसका उपयोग करें:

db.adminCommand("listDatabases").databases.forEach(function(d)
             {
              if(d.name!="admin" && d.name!="local" && d.name!="config")
                {
                 db.getSiblingDB(d.name).dropDatabase();
                }
             }
          );

सभी डीबी का उपयोग करने के लिए:

for i in $(mongo --quiet --host $HOSTNAME --eval "db.getMongo().getDBNames()" | tr "," " ");

do mongo $i --host $HOSTNAME --eval "db.dropDatabase()";

done 

उल्का डेवलपर्स के लिए।

  1. localhost:3000 में अपना ऐप चलाने के दौरान दूसरी टर्मिनल विंडो खोलें localhost:3000

  2. आपके प्रोजेक्ट के फ़ोल्डर में, meteor mongo चलाएं।

    coolName = new Mongo.Collection('yourCollectionName');

  3. फिर बस db.yourCollectionName.drop(); दर्ज करें db.yourCollectionName.drop();

  4. आप स्वचालित रूप से अपने स्थानीय सर्वर में परिवर्तन देखेंगे।

हर किसी के लिए।

db.yourCollectionName.drop();


use <dbname>
db.dropAllUsers()
db.dropAllRoles()
db.dropDatabase()

2.6 में पेश किए गए संशोधन को समझाते हुए MongoDB db.dropDatabase () दस्तावेज़ :

संस्करण 2.6 में बदला गया: यह आदेश वर्तमान डेटाबेस से जुड़े उपयोगकर्ताओं को नहीं हटाता है।





mongodb