2012-01-13 30 views

Trả lời

958

Như thế này:

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

Thông tin thêm về kịch bản shell từ dòng lệnh ở đây: https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/#scripting

+0

Điều này rất hữu ích trong trường hợp của tôi. Bằng cách nào đó tôi đã có một cơ sở dữ liệu có tên "mean-dev" từ một cài đặt cũ hơn, và nhập "mean-dev.dropDatabase()" trong vỏ mongo dẫn đến "ReferenceError: mean is not defined". Nhưng sử dụng giải pháp trong câu trả lời này đã làm các trick. +1 –

+18

Nếu bạn muốn nhận kết quả có thể đọc được bằng con người, hãy thực hiện theo cách này: '' 'mongo --eval" printjson (db.dropDatabase()) "' '' –

+1

K. P. MacGregor. bạn nên có được: "sử dụng mean-dev" + "db.dropDatabase()" – ozma

781

Cách tốt nhất để làm điều đó là từ MongoDB console:

> use mydb; 
> db.dropDatabase(); 

Ngoài ra, bạn có thể ngăn chặn mongod và xóa các tập tin dữ liệu từ thư mục dữ liệu của bạn, sau đó khởi động lại.

Gợi ý: bạn cũng có thể di chuyển các tệp dữ liệu vào một thư mục con và xóa chúng nếu bạn chắc chắn bạn không còn cần chúng nữa.

+2

Tôi nghĩ rằng anh ấy có nghĩa là trực tiếp từ lời nhắc không? Trong trường hợp đó, bạn phải tạo một tệp .js với các lệnh đó và gọi nó từ dấu nhắc bằng cách sử dụng "mongo dropdb.js" hoặc một cái gì đó hoặc làm như bạn nói và xóa các tệp theo cách thủ công. –

+0

Không phải là loại của tôi ạ;) –

+2

nhưng lưu ý rằng bạn không thể sử dụng lệnh 'use' trong tệp .js, bạn phải kết nối với DB cụ thể (chỉ định dbname cho lệnh mongo) – Betlista

26

Bạn cũng có thể sử dụng một "heredoc":

mongo localhost/db <<EOF 
db.dropDatabase() 
EOF 

Kết quả về sản lượng như:

mongo localhost/db <<EOF 
db.dropDatabase() 
EOF 
MongoDB shell version: 2.2.2 
connecting to: localhost/db 
{ "dropped" : "db", "ok" : 1 }  
bye 

Tôi thích sử dụng heredocs cho những thứ như thế này, trong trường hợp bạn muốn chuỗi lệnh phức tạp hơn.

17

cách khác:

echo "db.dropDatabase()" | mongo <database name> 
+0

Điều này làm việc với Meteor Mongo DBs –

96

Đây là một chút dài dòng hơn, nhưng tôi nghĩ rằng nó là an toàn hơn:

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 } 
16

Execute trong một thiết bị đầu cuối:

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. 
+0

Câu trả lời giống như [this one] (http://stackoverflow.com/questions/8857276/how- do-i-drop-a-mongodb-cơ sở dữ liệu-từ-the-command-line/18997305 # 18997305), được đưa ra một tháng trước đó. –

17

Dưới đây là một số sử dụng đầy đủ xóa các hoạt động cho mongodb bằng cách sử dụng mongo shell

Để xóa đặc biệt tài liệu trong bộ sưu tập: db.mycollection.remove({name:"stack"})

Để xóa tất cả các tài liệu trong bộ sưu tập: db.mycollection.remove()

Để bộ sưu tập xóa: db.mycollection.drop()

để cơ sở dữ liệu xóa: đi đầu tiên vào cơ sở dữ liệu đó theo lệnh use mydb và sau đó

db.dropDatabase() 

trực tiếp từ cửa sổ lệnh hoặc blash: mongo mydb --eval "db.dropDatabase()

104

Bạn không cần heredocs hoặc eval, mongo chính nó có thể hoạt động như một thông dịch viên.

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

Làm cho tệp thực thi và chạy tệp.

+1

Lưu ý rằng tên tập lệnh phải kết thúc bằng '.js', nếu không nó sẽ được hiểu là địa chỉ db. – Vegard

+0

@Vegard Điều đó không đúng. Bạn đang chạy 'tên tệp mongo' không cần thiết - tệp đã có thông dịch viên ở dòng trên cùng. Chỉ cần làm cho tập tin thực thi và chạy nó './Filename' – mikemaccana

+0

@mikemaccana Tôi biết điều đó, nhưng làm'./Filename' sẽ thực sự chạy '/ usr/bin/env mongo filename', phải không? Và vì vậy nếu 'filename' không kết thúc bằng' .py', mongo sẽ không nhận ra đối số là một tập lệnh để chạy. – Vegard

28

Bắt đầu MongoDB

lệnh cho Cơ sở dữ liệu thả là:

1. đầu tiên chọn cơ sở dữ liệu mà bạn muốn xóa

use < database name > 

2. Sau đó sử dụng này ..

db.dropDatabase() 
-1

Trong bạn command prompt, First kết nối với MongoDB sử dụng lệnh sau:

  • Mongo -h [host-name]: [port: số] -d [dbname] -u [username] -p [mật khẩu]

bạn sẽ truy cập db bằng.

Chạy lệnh sau để thả toàn bộ cơ sở dữ liệu:

  • db.dropDatabase()
-3

Lệnh dropDatabase xuống cơ sở dữ liệu hiện tại, xóa các tập tin dữ liệu có liên quan. Có hai cách để thả một cơ sở dữ liệu trong MongoDB. Trước tiên, nếu bạn muốn thả một cơ sở dữ liệu thời tiết từ MongoDB. Để thả cơ sở dữ liệu, điều đầu tiên cần làm là chuyển sang cơ sở dữ liệu bằng cách sử dụng sử dụng lệnh và đưa ra lệnh thả như sau.

sử dụng thời tiết

db.runCommand ({dropDatabaase: 1})

Thứ hai, Vỏ Mongo cũng cung cấp các phương pháp helper db.dropDatabase(). Các bước giống như trên.

sử dụng thời tiết

db.dropDatabase()

Nếu bạn muốn biết thêm về nó, xin vui lòng có một cái nhìn http://docs.mongodb.org/manual/reference/command/dropDatabase/

4

Sử dụng Javascript, bạn có thể dễ dàng tạo ra một drop_bad.js tập lệnh để thả cơ sở dữ liệu của bạn:

tạo drop_bad.js:

use bad; 
db.dropDatabase(); 

Thần chạy 1 lệnh trong terminal để exectue kịch bản sử dụng vỏ Mongo:

mongo < drop_bad.js 
3

Cho dù có một số phương pháp, Cách tốt nhất (hiệu quả nhất và dễ dàng nhất) đang sử dụng db.dropDatabase()

10

Mở cửa sổ dòng lệnh khác và thực hiện các lệnh sau,

mongodb 
use mydb 
db.dropDatabase() 

Output hoạt động đó sẽ trông giống như sau

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 } 
> 

Xin lưu ý rằng mydb vẫn đang sử dụng, do đó chèn bất kỳ đầu vào tại thời điểm đó sẽ khởi tạo cơ sở dữ liệu một lần nữa.

Các vấn đề liên quan