2012-07-12 20 views

risposta

51

Sì, anche se lo si fa tramite il driver MongoDB nativo e non Mongoose stesso. Supponendo una variabile richiesta, connessa, mongoose, l'oggetto nativo Db è accessibile tramite mongoose.connection.db e tale oggetto fornisce i metodi dropCollection e dropDatabase.

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

Grazie mille! – WHITECOLOR

+0

Nota che questi metodi restituiscono anche promesse, quindi puoi fare cose come 'attendere mongoose.connection.db.dropCollection ('pippo');' invece di lottare con le callback –

1

Mongoose fa riferimento alla connessione su ogni modello. Quindi, potresti trovare utile lasciare cadere anche il db o la raccolta di un singolo modello.

Ad esempio:

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

In Mangusta 4.9.8, si potrebbe rimuovere la collezione associato al modello utilizzare il seguente.

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

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

Questo non rimuove la collezione. Rimuove tutti i record nella raccolta. Per un numero elevato di record può richiedere molto tempo, causando timeout ... – user3616725

Problemi correlati