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()呼叫的较长持续时间.
文档中的更多细节.
Bat*_*han 28
以下是在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.
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()方法或该方法.
要删除所有集合中的所有文档:
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)
从 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 制作的