2012-07-12 26 views

Trả lời

51

Có, mặc dù bạn làm điều đó thông qua trình điều khiển MongoDB gốc và không phải bản thân Mongoose. Giả sử biến được yêu cầu, được kết nối, mongoose, đối tượng gốc Db có thể truy cập qua mongoose.connection.db và đối tượng đó cung cấp các phương thức dropCollectiondropDatabase.

// Drop the 'foo' collection from the current database 
mongoose.connection.db.dropCollection('foo', function(err, result) {...}); 

// Drop the current database 
mongoose.connection.db.dropDatabase(function(err, result) {...}); 
+0

Cảm ơn bạn rất nhiều! – WHITECOLOR

+0

Lưu ý rằng các phương thức này cũng trả về các lời hứa, vì vậy bạn có thể làm những việc như 'await mongoose.connection.db.dropCollection ('foo');' thay vì đấu tranh với callbacks –

1

Mongoose tham chiếu kết nối trên mọi mô hình. Vì vậy, bạn có thể thấy hữu ích khi thả db hoặc bộ sưu tập của một mô hình riêng lẻ.

Ví dụ:

// Drop the 'foo' collection from the current database 
User.db.db.dropCollection('foo', function(err, result) {...}); 

// Drop the current database 
User.db.db.dropDatabase(function(err, result) {...}); 
1

Trong Mongoose 4.9.8, bạn có thể sử dụng dưới đây để loại bỏ các bộ sưu tập kết hợp với mô hình.

ModelName.remove({}, function(err, row) { 
    if (err) { 
     console.log("Collection couldn't be removed" + err); 
     return; 
    } 

    console.log("collection removed"); 
}) 
+0

Thao tác này không xóa bộ sưu tập. Nó xóa tất cả các bản ghi trong bộ sưu tập. Đối với số lượng lớn các bản ghi, có thể mất một khoảng thời gian đáng kể, gây ra thời gian chờ ... – user3616725