我试过
db.users.remove(*)
虽然它返回错误,但我该如何清除所有记录?
答案 0 :(得分:83)
remove()
的参数是一个过滤器文档,因此传入一个空文档意味着“全部删除”:
db.user.remove({})
但是,如果你肯定想要删除所有可能最好删除集合的东西。虽然这可能取决于您是否在集合上有用户定义的索引,即在丢弃之后准备集合的成本是否超过remove()
呼叫与drop()
呼叫的较长持续时间。
更多详情in the docs。
答案 1 :(得分:9)
您可以删除MongoDB中集合中的所有文档,您可以使用以下命令:
db.users.remove({})
或者,您也可以使用以下方法:
db.users.deleteMany({})
请按照以下MongoDB documentation了解详情。
要从集合中删除所有文档,请将空的过滤器文档
{}
传递给db.collection.deleteMany()
或db.collection.remove()
方法。
答案 2 :(得分:4)
从cmd中的集合中删除所有文档:
cd C:\Program Files\MongoDB\Server\4.2\bin
mongo
use yourdb
db.yourcollection.remove( { } )
答案 3 :(得分:4)
要删除所有集合中的所有文档,请执行以下操作:
db.getCollectionNames().forEach( function(collection_name) {
if (collection_name.indexOf("system.") == -1) {
print ( ["Removing: ", db[collection_name].count({}), " documents from ", collection_name].join('') );
db[collection_name].remove({});
}
});
答案 4 :(得分:0)
db.users.count()
db.users.remove({})
db.users.count()
答案 5 :(得分:0)
这里是删除MongoDB shell或MongoDB Compass shell(_MongoSH)中一个集合的所有记录的命令。 >
show dbs -> to list all the database
use test-database -> to select the database
db.getCollection('orders').deleteMany({}) -> to select the collection and deletes all the data.
或
show dbs -> to list all the database
use test-database -> to select the database
db.orders.remove({}) -> to select the collection and deletes all the data.
答案 6 :(得分:0)
请尝试使用以下代码从所有集合中删除所有文档,但从“系统”开始。
use('DatabaseName');
db.getCollectionNames()
.filter((collectionName) => collectionName.indexOf("system.") === -1)
.forEach((collectionName) => {
print(`Removing: ${db[collectionName].count({})} documents from ${collectionName}`);
db[collectionName].deleteMany({});
});
此代码也可以在 MongoDB 游乐场中运行。 它还将打印每个集合删除的文档数。