কমান্ড লাইন থেকে আমি একটি মঙ্গোডিবি ডাটাবেস কীভাবে ফেলে দেব?


উত্তর:


1084

এটার মত:

mongo <dbname> --eval "db.dropDatabase()"

কমান্ড লাইন থেকে শেলটি স্ক্রিপ্ট করার বিষয়ে আরও তথ্য: https://docs.mongodb.com/manual/tutorial/writ-scriptts-for-the-mongo-shell/#scriptting


এটি আমার ক্ষেত্রে খুব সহায়ক ছিল। কোনওরকম আমার কাছে একটি পুরানো ইনস্টলেশন থেকে "গড়-দেব" নামে একটি ডাটাবেস ছিল এবং মঙ্গো শেলের মধ্যে "গড়-ডেভড্রপড ডাটাবেস ()" প্রবেশ করার ফলে "রেফারেন্স এরিয়ার: গড় সংজ্ঞায়িত হয় নি" in কিন্তু এই উত্তরের সমাধানটি ব্যবহার করে কৌতুকটি হয়েছিল। +1
কেপি ম্যাকগ্রিগোর

22
যদি আপনি কোনও মানব পাঠযোগ্য ফল পেতে চান তবে এইভাবে করুন: mongo <dbname> --eval "printjson(db.dropDatabase())"
ডিমিট্রো উহনিকেনকো

1
কেপি ম্যাকগ্রিগোর। আপনার হওয়া উচিত ছিল: "মিডিয়া-ডেভ" ব্যবহার করুন "+" ডিবি.ড্রপ ডেটাবেস () "
ওজমা

ধন্যবাদ। এভাবেই আপনি হোস্ট এবং পোর্টটি কাস্টমাইজ করতে পারেন: mongo <yourDb> --host <yourHost> --port <yourPort> --eval 'db.dropDatabase()'
ক্লিমেেন্সস

843

এটি করার সর্বোত্তম উপায়টি মঙ্গডব কনসোল থেকে:

> use mydb; 
> db.dropDatabase();

বিকল্পভাবে, আপনি mongodআপনার ডেটা ডিরেক্টরি থেকে ডেটা ফাইলগুলি থামাতে এবং মুছতে পারেন , তারপরে পুনঃসূচনা করুন।

ইঙ্গিত: আপনি ডেটা ফাইলগুলিকে একটি সাবফোল্ডারে সরাতেও পারেন, এবং আপনি যদি তাদের আর প্রয়োজন না বলে নিশ্চিত হন সেগুলি মুছে ফেলতে পারেন।


2
আমি মনে করি তিনি সরাসরি প্রম্পট থেকে বোঝান তিনি না? সেক্ষেত্রে আপনাকে হয় সেই কমান্ডগুলির সাহায্যে একটি .js ফাইল তৈরি করতে হবে এবং "মোঙ্গো ড্রপডবি.জেএস" বা কোনও কিছু ব্যবহার করে প্রম্পট থেকে অনুরোধ করতে হবে বা মেনুয়ালি ফাইলগুলি মুছে ফেলা উচিত।
রেমন ভ্যান ভালিট

2
তবে useজেনে রাখুন যে আপনি .js ফাইলে কমান্ড ব্যবহার করতে পারবেন না , আপনাকে কংক্রিট ডিবিতে সংযুক্ত করতে হবে (মঙ্গো কমান্ডের জন্য dbname নির্দিষ্ট করুন)
বেটলিস্টা

46
প্রো টিপ: একটি ডাটাবেস ড্রপ করার পরে, আপনি ~/.dbshellকমান্ডের ইতিহাস সাফ করার জন্য মঙ্গো শেল থেকে বেরিয়ে আপনার ফাইলটি মুছতে পারেন। (এটি করার আরও ভাল উপায় থাকতে পারে - আমি নিশ্চিত নই।) আমি এটি করলাম কারণ এসকিউএল এর বিপরীতে একটি ডাটাবেস ফেলে দেওয়ার জন্য মঙ্গো কমান্ড আসলে ডাটাবেসের নাম বাদ দিতে পারে না - এটি কেবল ড্রপস ফেলে দেয় ডাটাবেস যা ক্লায়েন্ট বর্তমানে সংযুক্ত আছে। আপনার কমান্ডের ইতিহাস সাফ করার ফলে আপনি ঘটনাক্রমে dropDatabaseকমান্ডটি পুনরায় প্লে করতে এবং অনিচ্ছাকৃতভাবে একটি দ্বিতীয় ডাটাবেস বাদ দিতে বাধা দেবেন।
ক্রিস অ্যালেন লেন

3
এটি একটি স্মার্ট ধারণা, @ ক্রিসাল্লেনেলা। মংডোব শেল অনেক সময় একটি বিপজ্জনক সরঞ্জাম ... :)
মনেমোসিন

সতর্কতা: আপনি যদি একটি ডেটাবেস ফেলে রাখেন এবং একই নামের সাথে একটি নতুন ডাটাবেস তৈরি করেন, আপনাকে অবশ্যই সমস্ত মঙ্গো দৃষ্টান্ত পুনরায় চালু করতে হবে, বা সেই ডেটাবেসে পড়া বা লেখার আগে সমস্ত মঙ্গো উদাহরণগুলিতে flushRouterConfig কমান্ডটি ব্যবহার করতে হবে। এই ক্রিয়াটি নিশ্চিত করে যে মঙ্গোস দৃষ্টান্তগুলি তাদের মেটাডেটা ক্যাশে রিফ্রেশ করে নতুন ডাটাবেসের জন্য প্রাথমিক শারডের অবস্থান সহ। অন্যথায়, মঙ্গোস রিডে ডেটা মিস করতে পারে এবং একটি ভুল শার্ডে ডেটা লিখতে পারে।
Lekr0

114

আমি এটি মনে রাখা সহজ:

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 }

113

আপনার বংশগতি বা evভাল দরকার নেই , mongoনিজেই একজন দোভাষী হিসাবে কাজ করতে পারেন।

#!/usr/bin/env mongo
var db = new Mongo().getDB("someDatabase");
db.dropDatabase();

ফাইলটি এক্সিকিউটেবল করুন এবং এটি চালান।


3
নোট করুন যে স্ক্রিপ্টের নামটি অবশ্যই শেষ হওয়া উচিত .js, অন্যথায় এটি ডিবি ঠিকানা হিসাবে ব্যাখ্যা করা হবে।
Vegeard

1
@ ওয়েগার্ড এটি সঠিক নয়। আপনি দৌড়াচ্ছেন mongo filenameযা অপ্রয়োজনীয় - ফাইলটির ইতিমধ্যে শীর্ষ লাইনে একটি দোভাষী রয়েছে। কেবল ফাইলটি এক্সিকিউটেবল করুন এবং এটি চালান./filename
মাইকম্যাকানা 4'17

@ মাইকমেচানা আমি জানি যে, তবে ./filenameআসলে কি চলবে /usr/bin/env mongo filename, তাই না? এবং তাই যদি filenameশেষ না হয় .py, মঙ্গো আর্গুমেন্টটি চালানোর জন্য একটি স্ক্রিপ্ট হিসাবে স্বীকৃতি দেবে না।
ভিজার্ড

"/। ফাইল ফাইলটি আসলে / ইউএসআর / বিন / এনভিভি মঙ্গো ফাইলের নাম চালাবে, তাইনা?" না ps। আউটপুট চেক ।
মাইকম্যাকানা

@ মিকেম্যাকানা আউটপুট psআপনাকে কেবলমাত্র অনুরোধ করবে সেই সময়ে কী চলছে তা দেখায় ps, execকলগুলির শৃঙ্খলা নয় যে কারনটি ফাইলটি লোড এবং চালনার জন্য কর্নেল যে কাজ করেছিল তা নয়। আপনি যদি সত্যিই কী চলছে তা জানতে চান, আপনার চারপাশে একটি মোড়ক লেখার ব্যবহার করা উচিত /usr/bin/env, এটি শেবাং লাইনে এক্সিকিউটেবল হিসাবে সেট করুন এবং তারপরে পুরো জিনিসটি বন্ধ করে দিন strace
kbolino

31

মঙ্গোডিবি শুরু করুন

ডাটাবেস ড্রপ জন্য কমান্ড হল:

1. প্রথমে আপনি মুছে ফেলতে চান যা ডাটাবেস নির্বাচন করুন

use < database name >

2. তারপর এটি ব্যবহার করুন ..

db.dropDatabase()

28

আপনি "বংশগত" ব্যবহার করতে পারেন:

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

আপনি যদি আদেশের আরও জটিল ক্রম চান তবে আমি এই জাতীয় জিনিসের জন্য হেরিডোক ব্যবহার করতে চাই।



18

মঙ্গো শেল ব্যবহার করে এখানে কিছু মোডোডবের জন্য সম্পূর্ণ মুছুন অপারেশনগুলি ব্যবহার করা হচ্ছে

করার বিশেষ দস্তাবেজ মুছুন সংগ্রহে:db.mycollection.remove( {name:"stack"} )

করার সব কাগজপত্র মুছতে সংগ্রহে: db.mycollection.remove()

করতে ডিলিট সংগ্রহ : db.mycollection.drop()

থেকে ডিলিট ডাটাবেসের : প্রথম যে ডাটাবেসের সাথে যেতে use mydbকমান্ড এবং তারপর

db.dropDatabase()

সরাসরি কমান্ড প্রম্পট বা ব্লেশ থেকে: mongo mydb --eval "db.dropDatabase()



10

অন্য একটি টার্মিনাল উইন্ডো খুলুন এবং নিম্নলিখিত কমান্ডগুলি কার্যকর করুন,

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এখনও অবধি ব্যবহৃত, অতএব যে কোনও ইনপুট tingোকানো পুনরায় ডাটাবেস শুরু করবে initial


4

জাভাস্ক্রিপ্ট ব্যবহার করে, আপনি সহজেই আপনার ডাটাবেস ড্রপ করার জন্য একটি ড্রপ_আড.জেএস স্ক্রিপ্ট তৈরি করতে পারেন :

ড্রপ_ব্যাড.জেএস তৈরি করুন :

use bad;
db.dropDatabase();

মঙ্গো শেল ব্যবহার করে স্ক্রিপ্টটি সন্ধান করতে টার্মিনালে 1 টি কমান্ড চালনা করুন:

mongo < drop_bad.js

2

বেশ কয়েকটি পদ্ধতি রয়েছে, সর্বোত্তম উপায় (সবচেয়ে দক্ষ এবং সহজতম) ব্যবহার করা হচ্ছে db.dropDatabase()


2

আপনার কমান্ড প্রম্পটে, প্রথমে নিম্নলিখিত কমান্ডটি ব্যবহার করে মঙ্গদ্ব্বের সাথে সংযুক্ত করুন:

mongo -h [host-name]:[port:number] -d [dbname] -u [username] -p [password]

আপনি ডিবি দিয়ে অ্যাক্সেস করা হবে <dbname>

পুরো ডাটাবেস ড্রপ করতে নিম্নলিখিত কমান্ডটি চালান:

db.dropDatabase()

-এইচ সাহায্য, -ডি কোনও বিকল্প `মঙ্গো - হোস্ট [হোস্ট-নেম] এর মতো নয়: [পোর্ট: সংখ্যা] -উ [ইউজারনেম] -পি [পাসওয়ার্ড] [ডিবি নাম] --eval" ডিবি.ড্রপড ডাটাবেস ( ) "`
জ্যাসেমমিকেল

2

একটি লাইনার রিমোট মঙ্গো ডাটাবেস থেকে সমস্ত সংগ্রহ সরিয়ে দেয়

নোটটিতে অবশ্যই --host ব্যবহার করা উচিত, (-h মঙ্গো কমান্ডের জন্য সহায়তা), এবং -d কোনও বিকল্প নয়, পাসওয়ার্ডের পরে db এবং কমান্ড নির্বাচন করুন।

mongo --host <mongo_host>:<mongo_port> -u <db_user> -p <db_pass> <your_db> --eval "db.dropDatabase()"


0

পাইথন ব্যবহার করে একটি মঙ্গোডিবি ডাটাবেস ফেলে দিন:

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")

-1

ডিবি বর্তমান ডাটাবেস নামের ধরণটি প্রদর্শন করবে: দেখায় db.DPDatabas ();

1- ব্যবহার করে ড্রপ করতে ডাটাবেস নির্বাচন করুন ব্যবহার ' কীওয়ার্ড ।

2- তারপরে db.rodDatabase () টাইপ করুন ;


-2

ডিবি ড্রপ করতে মঙ্গো শেল থেকে নিম্নলিখিত কমান্ডটি ব্যবহার করুন

ব্যবহার; 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 :
জনাব কেনেডি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.