मेरे बैश प्रॉम्प्ट से ऐसा करने का सबसे आसान तरीका क्या है?
मेरे बैश प्रॉम्प्ट से ऐसा करने का सबसे आसान तरीका क्या है?
जवाबों:
ऐशे ही:
mongo <dbname> --eval "db.dropDatabase()"
कमांड लाइन से शेल को स्क्रिप्ट करने के बारे में अधिक जानकारी यहां: https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/#scripting
mongo <dbname> --eval "printjson(db.dropDatabase())"
mongo <yourDb> --host <yourHost> --port <yourPort> --eval 'db.dropDatabase()'
इसे करने का सबसे अच्छा तरीका मोंगोडब कंसोल से है:
> use mydb;
> db.dropDatabase();
वैकल्पिक रूप से, आप mongod
अपनी डेटा निर्देशिका से डेटा फ़ाइलों को रोक और हटा सकते हैं , फिर पुनरारंभ करें।
संकेत: आप डेटा फ़ाइलों को सबफ़ोल्डर में भी स्थानांतरित कर सकते हैं, और उन्हें हटा सकते हैं यदि आपको यकीन है कि आपको अब उनकी आवश्यकता नहीं है।
use
.js फ़ाइल में कमांड का उपयोग नहीं कर सकते हैं , आपको कंक्रीट DB से कनेक्ट करना होगा (
~/.dbshell
अपने कमांड इतिहास को खाली करने के लिए मोंगो शेल से बाहर निकल सकते हैं और अपनी फ़ाइल को हटा सकते हैं । (ऐसा करने का एक बेहतर तरीका हो सकता है - मुझे यकीन नहीं है।) मैं ऐसा इसलिए करता हूं, क्योंकि एसक्यूएल के विपरीत, डेटाबेस को गिराने के लिए मोंगो कमांड वास्तव में ड्रॉप करने के लिए डेटाबेस के नाम का संदर्भ नहीं देता है - यह बस गिरता है डेटाबेस जिसके लिए क्लाइंट वर्तमान में जुड़ा हुआ है। अपने कमांड इतिहास को साफ़ करने से आपके गलती से dropDatabase
कमांड को फिर से देखने से रोका जा सकेगा और अनजाने में दूसरा डेटाबेस गिर जाएगा।
मुझे यह याद रखना आसान लगा:
mongo //to start the mongodb shell
show dbs //to list existing databases
use <dbname> //the <dbname> is the database you'd like to drop
db //should show <dbname> just to be sure I'm working with the right database
db.dropDatabase() //will delete the database & return { "dropped" : "<dbname>", "ok" : 1 }
आपको heredocs या eval की आवश्यकता नहीं है , mongo
स्वयं एक दुभाषिया के रूप में कार्य कर सकता है।
#!/usr/bin/env mongo
var db = new Mongo().getDB("someDatabase");
db.dropDatabase();
फ़ाइल को निष्पादन योग्य बनाएं और उसे चलाएं।
.js
, अन्यथा यह डीबी पते के रूप में व्याख्या किया जाएगा।
mongo filename
जो अनावश्यक है - फ़ाइल में पहले से ही शीर्ष पंक्ति में एक दुभाषिया है। बस फ़ाइल को निष्पादन योग्य ./filename
./filename
वास्तव में चलेगा /usr/bin/env mongo filename
, है ना? और इसलिए यदि filename
अंत नहीं होता है .py
, तो मूंगो तर्क को चलाने के लिए स्क्रिप्ट के रूप में नहीं पहचानेगा।
ps
।
ps
केवल यह दिखाता है कि आपके द्वारा आह्वान किए जाने के समय क्या चल रहा है ps
, न exec
कि कॉल की श्रृंखला जो उस बिंदु तक ले जाती है और न ही कर्नेल ने फ़ाइल को लोड करने और निष्पादित करने के लिए किया है। यदि आप जानना चाहते हैं कि वास्तव में क्या चल रहा है, तो आपको एक आवरण लिखने के लिए उपयोग करना चाहिए /usr/bin/env
, सेट करें कि शबंग लाइन में निष्पादन योग्य के रूप में, और फिर पूरी चीज को बंद कर दें strace
।
आप "हेरेडोक" का भी उपयोग कर सकते हैं:
mongo localhost/db <<EOF
db.dropDatabase()
EOF
उत्पादन में परिणाम जैसे:
mongo localhost/db <<EOF
db.dropDatabase()
EOF
MongoDB shell version: 2.2.2
connecting to: localhost/db
{ "dropped" : "db", "ok" : 1 }
bye
यदि आप आदेशों के अधिक जटिल अनुक्रम चाहते हैं, तो मुझे इस तरह की चीजों के लिए हेरेडोक्स का उपयोग करना पसंद है।
अन्य रास्ता:
echo "db.dropDatabase()" | mongo <database name>
यहाँ कुछ मूंगोडब शेल के उपयोग से मोंगोडब के लिए पूर्ण डिलीट ऑपरेशन का उपयोग किया गया है
संग्रह में विशेष दस्तावेज़ को हटाने के लिए :db.mycollection.remove( {name:"stack"} )
संग्रह में सभी दस्तावेजों को हटाने के लिए : db.mycollection.remove()
संग्रह हटाने के लिए : db.mycollection.drop()
डेटाबेस को हटाने के लिए : पहले उस डेटाबेस पर जाएं use mydb
और फिर कमांड द्वारा
db.dropDatabase()
सीधे कमांड प्रॉम्प्ट या ब्लश से: mongo mydb --eval "db.dropDatabase()
एक टर्मिनल में निष्पादित करें:
mongo // To go to shell
show databases // To show all existing databases.
use <DATA_BASE> // To switch to the wanted database.
db.dropDatabase() // To remove the current database.
एक और टर्मिनल विंडो खोलें और निम्नलिखित कमांड निष्पादित करें,
mongodb
use mydb
db.dropDatabase()
उस ऑपरेशन का आउटपुट निम्न की तरह दिखेगा
MAC:FOLDER USER$ mongodb
> show databases
local 0.78125GB
mydb 0.23012GB
test 0.23012GB
> use mydb
switched to db mydb
>db.dropDatabase()
{ "dropped" : "mydb", "ok" : 1 }
>
कृपया ध्यान दें कि mydb
अभी भी उपयोग में है, इसलिए उस समय कोई भी इनपुट सम्मिलित करना डेटाबेस को फिर से आरंभ करेगा।
आखिरकार कई तरीके हैं, सबसे अच्छा तरीका (सबसे कुशल और सबसे आसान) उपयोग कर रहा है db.dropDatabase()
आप कमांड प्रॉम्प्ट में, पहले कमांड का उपयोग करके मोंगोडब से कनेक्ट करें:
mongo -h [host-name]:[port:number] -d [dbname] -u [username] -p [password]
आप के साथ पहुँच db हो जाएगा <dbname>
।
पूरे डेटाबेस को छोड़ने के लिए निम्नलिखित कमांड चलाएँ:
db.dropDatabase()
एक लाइनर रिमोट मोंगो डेटाबेस से सभी संग्रहों को हटा देता है
नोट का उपयोग करना चाहिए-host, (-h mongo कमांड के लिए मदद है), और -d एक विकल्प नहीं है, पासवर्ड के बाद db और कमांड का चयन करें।
mongo --host <mongo_host>:<mongo_port> -u <db_user> -p <db_pass> <your_db> --eval "db.dropDatabase()"
अपने mongoDB कमांड लाइन में लॉग इन करें: और नीचे दिए गए कमांड टाइप करें। "your_DATABASE_NAME" का उपयोग करें; db.dropDatabase ();
अजगर का उपयोग कर एक MongoDB डेटाबेस छोड़ें:
import argparse
import pymongo
if __name__ == "__main__":
"""
Drop a Database.
"""
parser = argparse.ArgumentParser()
parser.add_argument("--host", default='mongodb://localhost:27017',
help="mongodb URI [default: %(default)s]")
parser.add_argument("--database", default=None,
help="database name: %(default)s]")
args = parser.parse_args()
client = pymongo.MongoClient(host=args.host)
if args.database in client.list_database_names():
client.drop_database(args.database)
print(f"Dropped: '{args.database}'")
else:
print(f"Database '{args.database}' does not exist")
db ड्रॉप करने के लिए mongo शेल से निम्न कमांड का उपयोग करें
उपयोग ; db.dropDatabase ();
> use auth-users ; db.dropDatabase()
और > use auth-users; db.dropDatabase()
और दोनों लौट आए[thread1] Error: [auth-users ; db.dropD atabase()] is not a valid database name :