mongoose.jsを使用してコレクションまたはデータベース全体を削除することは可能ですか?
質問する
83303 次
7 に答える
98
はい。ただし、Mongoose自体ではなく、ネイティブのMongoDBドライバーを介して実行します。必須の接続されたmongoose
変数を想定すると、ネイティブDb
オブジェクトは、を介してアクセス可能mongoose.connection.db
であり、そのオブジェクトはメソッドを提供dropCollection
し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) {...});
于 2012-07-15T15:51:51.010 に答える
91
これはマングースで実行できるようになりました。
MyModel.collection.drop();
于 2017-01-28T06:21:00.997 に答える
10
mochajsテストフレームワークを使用していて、各テストの後にすべてのdbコレクションをクリーンアップしたい場合は、async/awaitを使用する以下を使用できます。
afterEach(async function () {
const collections = await mongoose.connection.db.collections()
for (let collection of collections) {
await collection.remove()
}
})
于 2018-04-28T01:28:28.053 に答える
3
マングースはすべてのモデルの接続を参照します。そのため、個々のモデルからDBまたはコレクションを削除することも役立つ場合があります。
例えば:
// Drop the 'foo' collection from the current database
User.db.dropCollection('foo', function(err, result) {...});
// Drop the current database
User.db.dropDatabase(function(err, result) {...});
于 2015-10-20T21:58:47.340 に答える
2
5.2.15バージョンのMongoose+Mochaテストでは、各テストの前にすべてのコレクションを削除する必要があります。
beforeEach(async () => {
const collections = await mongoose.connection.db.collections();
for (let collection of collections) {
// note: collection.remove() has been depreceated.
await collection.deleteOne();
}
});
于 2018-09-16T07:53:44.260 に答える
1
docker
テストとテストがコンテナで実行された後にコレクションを削除する場合:
mongoose = require("mongoose");
...
afterAll(async () => {
const url = 'mongodb://host.docker.internal:27017/my-base-name';
await mongoose.connect(url)
await mongoose.connection.collection('collection-name').drop()
})
于 2019-07-19T14:53:23.430 に答える
0
Connection.prototype.dropCollection()を使用してコレクションを削除しました
const conn = mongoose.createConnection('mongodb://localhost:27017/mydb');
conn.dropCollection("Collection_name",callbacks);
于 2021-09-29T12:16:07.043 に答える