Bunu bash istemimden yapmanın en kolay yolu nedir?
Bunu bash istemimden yapmanın en kolay yolu nedir?
Yanıtlar:
Bunun gibi:
mongo <dbname> --eval "db.dropDatabase()"
Kabuğu komut satırından komut dosyası yazma hakkında daha fazla bilgi için: 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()'
Bunu yapmanın en iyi yolu mongodb konsolundan:
> use mydb;
> db.dropDatabase();
Alternatif olarak, mongodveri dizininizdeki veri dosyalarını durdurabilir ve silebilir, sonra yeniden başlatabilirsiniz.
İpucu: Ayrıca veri dosyalarını bir alt klasöre taşıyabilir ve artık ihtiyacınız olmadığından eminseniz silebilirsiniz.
use.js dosyasında komut kullanamayacağınızı unutmayın, beton DB'ye bağlanmanız gerekir (mongo komutu için dbname belirtin)
~/.dbshellkomut geçmişinizi temizlemek için dosyanızı silmek isteyebilirsiniz . (Bunu yapmanın daha iyi bir yolu olabilir - emin değilim.) Bunu yapıyorum çünkü SQL'den farklı olarak, bir veritabanını düşürmek için mongo komutu aslında veritabanının adını bırakmak için başvurmuyor - sadece istemcinin bağlı olduğu veritabanı. Komut geçmişinizi temizlemek, yanlışlıkla dropDatabasekomutu tekrar oynatmanızı ve istemeden ikinci bir veritabanını düşürmenizi önler .
Bunu hatırlaması kolay buldum:
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 }
Yorumlu metinlere veya değerlendirmeye gerek yoktur , mongokendisi bir tercüman olarak hareket edebilir.
#!/usr/bin/env mongo
var db = new Mongo().getDB("someDatabase");
db.dropDatabase();
Dosyayı yürütülebilir yapın ve çalıştırın.
.js, aksi takdirde db adresi olarak yorumlanacağını unutmayın.
mongo filenameGereksiz çalıştırıyorsunuz - dosyanın üst satırında zaten bir tercüman var. Sadece dosyayı yürütülebilir yapın ve çalıştırın./filename
./filenameaslında çalışacak /usr/bin/env mongo filenamedeğil mi? Ve eğer bu yüzden filenamede bitmiyor .py, Mongo çalıştırmak için komut dosyası olarak argüman tanımaz.
ps. Çıkışını kontrol edin .
pssize yalnızca çağırdığınız sırada neyin çalıştığını gösterir ps, execo noktaya götüren çağrılar zincirini ya da çekirdeğin dosyayı yüklemek ve yürütmek için yaptığı işi değil. Gerçekten neler olup bittiğini bilmek istiyorsanız, etrafına bir sarıcı yazmalı, bunu /usr/bin/envshebang satırındaki yürütülebilir dosya olarak ayarlamalı ve sonra her şeyi başlamalısınız strace.
MongoDB'yi başlat
Veritabanı bırakma komutu:
1. önce silmek istediğiniz veritabanını seçin
use < database name >
2. Sonra bunu kullanın ..
db.dropDatabase()
Ayrıca bir "heredoc" da kullanabilirsiniz:
mongo localhost/db <<EOF
db.dropDatabase()
EOF
Çıktı sonuçları şöyle:
mongo localhost/db <<EOF
db.dropDatabase()
EOF
MongoDB shell version: 2.2.2
connecting to: localhost/db
{ "dropped" : "db", "ok" : 1 }
bye
Daha karmaşık komut dizisi istemeniz durumunda, buedocs'u böyle şeyler için kullanmayı seviyorum.
Diğer yol:
echo "db.dropDatabase()" | mongo <database name>
İşte bazı mongo kabuğu kullanarak mongodb için tam silme işlemleri kullanın
Koleksiyonlardaki belirli bir belgeyi silmek için :db.mycollection.remove( {name:"stack"} )
Koleksiyonlardaki tüm belgeleri silmek için : db.mycollection.remove()
Koleksiyonu silmek için : db.mycollection.drop()
için silme veritabanı : İlk o veritabanı gidip use mydbsonra komuta ve
db.dropDatabase()
doğrudan komut isteminden veya kesintiden: mongo mydb --eval "db.dropDatabase()
Bir terminalde yürütün:
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.
Başka bir terminal penceresi açın ve aşağıdaki komutları yürütün,
mongodb
use mydb
db.dropDatabase()
Bu operasyonun çıktısı aşağıdaki gibi olacaktır
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 }
>
mydbHâlâ kullanımda olduğunu ve dolayısıyla herhangi bir girdinin eklenmesinin veritabanını yeniden başlatacağını lütfen unutmayın .
Javascript kullanarak , veritabanınızı bırakmak için kolayca bir drop_bad.js komut dosyası oluşturabilirsiniz :
oluşturmak drop_bad.js :
use bad;
db.dropDatabase();
Daha sonra, mongo kabuğunu kullanarak komut dosyasını incelemek için terminalde 1 komutunu çalıştırın:
mongo < drop_bad.js
Her ne kadar çeşitli yöntemler olsa da, en iyi yol (en verimli ve en kolay) kullanmaktır db.dropDatabase()
Komut isteminde, önce aşağıdaki komutu kullanarak mongodb'a bağlanın:
mongo -h [host-name]:[port:number] -d [dbname] -u [username] -p [password]
ile db'ye erişiyor olacaksınız <dbname>.
Tüm veritabanını bırakmak için aşağıdaki komutu çalıştırın:
db.dropDatabase()
bir liner uzaktan tüm koleksiyonları mongo veritabanından kaldırmak
not --host kullanmalı, (-h mongo komutu için yardım) ve -d bir seçenek değil, db'yi ve paroladan sonra komutu seç.
mongo --host <mongo_host>:<mongo_port> -u <db_user> -p <db_pass> <your_db> --eval "db.dropDatabase()"
MongoDB komut satırınıza giriş yapın: Ve aşağıdaki komutları yazın. "YOUR_DATABASE_NAME" kullanın; db.dropDatabase ();
Python kullanarak bir MongoDB veritabanı bırakın:
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'yi bırakmak için mongo kabuğundan aşağıdaki komutu kullanın
kullanım; db.dropDatabase ();
> use auth-users ; db.dropDatabase()ve > use auth-users; db.dropDatabase()hem iade[thread1] Error: [auth-users ; db.dropD atabase()] is not a valid database name :