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

52 mongodb

我试过了

db.users.remove(*)
Run Code Online (Sandbox Code Playgroud)

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

gly*_*ing 106

参数remove()是一个过滤文档,所以传入一个空文档意味着'全部删除':

db.user.remove({})
Run Code Online (Sandbox Code Playgroud)

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

文档中的更多细节.

  • `remove` 现已弃用。使用 db.user.deleteMany({}) 代替 (9认同)
  • 抱歉,我最好说:它将在未来的版本中被弃用。它只是在终端中记录此声明。 (2认同)

Bat*_*han 28

以下是在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.
Run Code Online (Sandbox Code Playgroud)

或者

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.
Run Code Online (Sandbox Code Playgroud)


pb2*_*b2q 19

使用deleteMany函数(文档):

假设您的集合名为users

db.users.deleteMany({})
Run Code Online (Sandbox Code Playgroud)

deleteMany采用过滤器作为参数,并将空文档 {} 作为过滤器传递相当于要求删除集合的所有成员。

请注意,这remove应该仍然有效,但您需要传递相同的空文档:

db.users.remove({})
Run Code Online (Sandbox Code Playgroud)

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

DeprecationWarning:Collection.remove() 已弃用。使用deleteOne、deleteMany、findOneAndDelete 或bulkWrite。


N00*_*mer 13

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

db.users.remove({})
Run Code Online (Sandbox Code Playgroud)

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

db.users.deleteMany({})
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅以下MongoDB 文档.

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


Omk*_*war 7

db.users.count()
db.users.remove({})
db.users.count()
Run Code Online (Sandbox Code Playgroud)


Kal*_*nGi 7

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

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({}); 
    }
});
Run Code Online (Sandbox Code Playgroud)


Uku*_*ele 6

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

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

这个例子是为 MongoDB 4.2 制作的