删除MongoDB Shell中集合的所有记录

时间:2017-09-22 15:37:01

标签: mongodb

我试过

db.users.remove(*)

虽然它返回错误,但我该如何清除所有记录?

7 个答案:

答案 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 shellMongoDB 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 游乐场中运行。 它还将打印每个集合删除的文档数。