MongoDB: 如何在 MongoDB Shell 中删除集合的所有记录?

我试过了

db.users.remove(*)

虽然它返回一个错误,但是我如何清除所有记录呢?

210319 次浏览

remove()的参数是一个过滤器文档,因此传入一个空文档意味着“删除所有”:

db.user.remove({})

然而,如果你确实想删除一切,你 也许吧最好放弃收集。尽管这可能取决于您在集合上是否有用户定义的索引,也就是说,放弃集合后准备它的成本是否超过了 remove()调用与 drop()调用的较长时间。

更多细节 在文件里

您可以在 MongoDB 中删除集合中的所有文档,您可以使用以下方法:

db.users.remove({})

或者,你也可以使用以下方法:

db.users.deleteMany({})

请按照以下 MongoDB文件了解更多详细信息。

若要从集合中删除所有文档,请将空过滤器文档 {}传递给 db.collection.deleteMany()db.collection.remove()方法。

db.users.count()
db.users.remove({})
db.users.count()

在 cmd 中删除集合中的所有文档:

cd C:\Program Files\MongoDB\Server\4.2\bin
mongo
use yourdb
db.yourcollection.remove( { } )

这个示例是为 MongoDB 4.2制作的

删除所有集合中的所有文档:

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({});
}
});

下面是删除 MongoDB shellMongoDB Compass shell(蒙古语)中集合的所有记录的命令。

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.

请尝试下面的代码来删除所有集合中的所有文档,除了从“ system”开始。

use('DatabaseName');
db.getCollectionNames()
.filter((collectionName) => collectionName.indexOf("system.") === -1)
.forEach((collectionName) => {
print(`Removing: ${db[collectionName].count({})} documents from ${collectionName}`);
db[collectionName].deleteMany({});
});

此代码也可以在 MongoDB 操场上运行。 它还将打印每个集合中删除的文档数量。

使用 deleteMany函数(医生) :

假设你的收藏品名为 users:

db.users.deleteMany({})

deleteMany接受 过滤器作为参数,将 空白文件 {}作为过滤器传递等效于要求删除集合的所有成员。

请注意,remove应该仍然可以工作,但是您需要传递相同的空文档:

db.users.remove({})

但是,remove已被弃用,如果您的 mongo 安装是最新的,那么使用 remove应该会导致一个弃用警告,指示您应该使用首选方法之一。从1.0.7开始:

不推荐使用 Collection.move (), Delete,findOneAndDelete,or bulkWrite.