回答:
このような:
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()'
これを行う最良の方法は、mongodbコンソールからです。
> use mydb;
> db.dropDatabase();
または、mongod
データファイルを停止してデータディレクトリから削除し、再起動することもできます。
ヒント:データファイルをサブフォルダーに移動し、不要になった場合は削除することもできます。
use
、.jsファイルではコマンドを使用できないことに注意してください。具体的なDBに接続する必要があります(mongoコマンドにはdbnameを指定します)
~/.dbshell
ファイルを削除し、コマンド履歴をクリアすることができます。(ことを行うための良い方法があるかもしれません- 。私はよく分からない)SQLとは異なり、モンゴコマンドは、データベースを削除するために、ので、私はこれを行う、実際にドロップするデータベースの名前を参照していない -それはちょうど低下クライアントが現在接続しているデータベース。コマンド履歴をクリアするdropDatabase
と、誤ってコマンドを再生したり、意図せずに2番目のデータベースを削除したりするのを防ぐことができます。
私はこれを覚えやすいと思いました:
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 }
あなたはヒアドキュメントやevalを必要としない、mongo
自身が通訳として機能することができます。
#!/usr/bin/env mongo
var db = new Mongo().getDB("someDatabase");
db.dropDatabase();
ファイルを実行可能にして実行します。
.js
。それ以外の場合は、dbアドレスとして解釈されます。
mongo filename
いますが、これは不要です-ファイルにはすでに最上行にインタープリターがあります。ファイルを実行可能にして実行するだけ./filename
./filename
ますが、実際に実行され/usr/bin/env mongo filename
ますよね?そして、でfilename
終わらない場合.py
、mongoは引数を実行するスクリプトとして認識しません。
ps
。の出力を確認してください。
ps
呼び出し時に何が実行されているかが示されるだけで、そのポイントに至るps
一連のexec
呼び出しや、カーネルがファイルをロードして実行するために行った作業は示されません。実際に何が起こっているのかを知りたい場合は、ラッパーを書いて/usr/bin/env
、それをシバン行の実行可能ファイルとして設定してから、ですべてを始めてくださいstrace
。
以下は、mongoシェルを使用したmongodbの完全削除操作の一部です。
コレクション内の特定のドキュメントを削除するには:db.mycollection.remove( {name:"stack"} )
コレクション内のすべてのドキュメントを削除するには: db.mycollection.remove()
コレクションを削除するには: db.mycollection.drop()
データベースを削除するには:最初にuse mydb
コマンドでそのデータベースに移動し、次に
db.dropDatabase()
コマンドプロンプトまたはblashから直接: mongo mydb --eval "db.dropDatabase()
他の方法:
echo "db.dropDatabase()" | mongo <database name>
端末で実行:
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()
コマンドプロンプトで、まず次のコマンドを使用してmongodbに接続します。
mongo -h [host-name]:[port:number] -d [dbname] -u [username] -p [password]
でdbにアクセスし<dbname>
ます。
次のコマンドを実行して、データベース全体を削除します。
db.dropDatabase()
1つのライナーリモートがmongoデータベースからすべてのコレクションを削除します
--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();
Pythonを使用して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")
mongoシェルから次のコマンドを使用して、dbを削除します
使用する ; 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 :