Question

I'm writing some tests agains MongoDb GridFs and want to make sure that I start each test with a clean slate. So I want to remove everything, both from fs_files and fs_chunks.

What's the easiest way to do that?

Était-ce utile?

La solution

If GridFs has its own database then I would just drop the database via mongo shell with db.dropDatabase(). Alternately if there are collections you would like to keep apart from fs_files and fs_chunks in the database you could drop the collections explicitly with db.collection.drop(). For both you can run via command from a driver rather than through the shell if desired.

Autres conseils

If you want to remove GridFS, try it like (pyMongo Case)

for i in fs.find(): # or fs.list()
    print fs.delete(i._id)

The simple way to remove all files and chunks is

let bucket = new GridFSBucket(db, { bucketName: 'gridfsdownload' });
bucket.drop(function(error) { /* do something */ });

This will remove the collections as well. If you want to keep the collections, you need to to do something like this:

let allFiles = db.collection('uploaded.file').find({}).toArray();
for (let file of allFiles) {
    await bucket.delete(file._id);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top