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


84

我试过了

db.users.remove(*)

尽管它返回错误,但如何清除所有记录?


db.getCollection('collectionname')。remove({})
firstpostcommenter

Answers:


163

的参数remove()是过滤器文档,因此传递空文档意味着“全部删除”:

db.user.remove({})

但是,如果你一定要删除所有你可能被关闭丢弃收集更好。虽然这可能取决于您是否在集合上具有用户定义的索引,即删除集合后准备集合的成本是否超过了remove()通话的持续时间与通话的持续时间drop()

在文档中有更多详细信息。


remove现在已弃用。使用db.user.deleteMany({})代替
Mahdieh Shavandi

@MahdiehShavandi看着Mongo shell文档,我什么都看不见,说remove不赞成(docs.mongodb.com/manual/reference/method/db.collection.remove)。您可以提供链接或引用来支持该主张吗?
glytching

抱歉,我最好说:在将来的版本中将不推荐使用。它只是将此声明记录在终端中。
Mahdieh Shavandi

31

您可以从MongoDB中的集合中删除所有文档,可以使用以下命令:

db.users.remove({})

另外,您也可以使用以下方法:

db.users.deleteMany({})

请遵循以下MongoDB文档,以获取更多详细信息。

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



3

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

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

2

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

cd C:\Program Files\MongoDB\Server\4.2\bin
mongo
use yourdb
db.yourcollection.remove( { } )
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.