我在MongoDB上做开发。出于完全无害的目的,我有时想要删除数据库中的所有内容——也就是说,删除每一个集合,以及周围可能存在的任何其他内容,然后从头开始。是否有一行代码可以让我这样做?同时提供MongoDB控制台方法和MongoDB Ruby驱动程序方法的额外好处。
当前回答
db.getCollectionNames().forEach(c=>db[c].drop())
其他回答
通过编译@Robse和@DanH的答案,我得到了以下完全让我满意的解决方案:
db.getCollectionNames().forEach( function(collection_name) {
if (collection_name.indexOf("system.") == -1)
db[collection_name].drop();
else
db[collection_name].remove({});
});
它通过删除用户集合和清空系统集合来清理数据库。
这里有一些有用的删除操作mongodb使用mongo shell
删除集合中的特定文档。删除({name:"stack"})
删除集合中的所有文档:db.mycollection.remove()
删除任何特定集合:db.mycollection.drop()
删除数据库。 首先使用mydb命令进入该数据库,然后
db.dropDatabase()
删除所有db使用:
for i in $(mongo --quiet --host $HOSTNAME --eval "db.getMongo().getDBNames()" | tr "," " ");
do mongo $i --host $HOSTNAME --eval "db.dropDatabase()";
done
对于Meteor开发者。
在localhost:3000中运行应用程序时打开第二个终端窗口。 在项目的文件夹中运行,meteor mongo。 coolName = new Mongo.Collection('yourCollectionName'); 然后输入db.yourCollectionName.drop(); 您将自动在本地服务器中看到更改。
为了其他人。
db.yourCollectionName.drop ();
use <dbname>
db.dropAllUsers()
db.dropAllRoles()
db.dropDatabase()
MongoDB db.dropDatabase()文档解释了2.6中引入的修改:
在2.6版更改:此命令不会删除与当前数据库关联的用户。
推荐文章
- elasticsearch vs . MongoDB用于过滤应用程序
- MongoDB记录所有查询
- MongoDB:如何找到安装的MongoDB的确切版本
- 如何使用mongoimport导入CSV文件?
- 在mongodb中存储日期/时间的最佳方法
- 如何排序mongodb与pymongo
- 如何在mongodb上导入。bson文件格式
- JSON文件的蒙古导入
- 如何删除mongodb中的数组元素?
- 修改MongoDB数据存储目录
- 在MongoDB中查找重复的记录
- 为什么MongoDB Java驱动在条件中使用随机数生成器?
- 在猫鼬,我如何排序的日期?(node . js)
- 将映像存储在MongoDB数据库中
- 重复Mongo ObjectId的可能性在两个不同的集合中生成?