MongoDB:如何在MongoDB Shell中删除集合的所有记录?
MongoDB: 如何删除MongoDB Shell中集合的所有记录?
问题原因:需要删除MongoDB Shell中集合的所有记录。
解决方法:
1. 使用以下命令删除MongoDB Shell或MongoDB Compass Shell中集合的所有记录(_MongoSH):
show dbs -> 列出所有数据库
use test-database -> 选择数据库
db.getCollection('orders').deleteMany({}) -> 选择集合并删除所有数据
2. 或者使用以下命令删除MongoDB Shell或MongoDB Compass Shell中集合的所有记录:
show dbs -> 列出所有数据库 use test-database -> 选择数据库 db.orders.remove({}) -> 选择集合并删除所有数据
问题的原因是对于MongoDB中的集合删除操作,传入一个空文档作为参数即可删除所有记录。但是,如果确实想要删除所有记录,更好的做法是删除整个集合。这取决于集合中是否有用户定义的索引,即删除集合后准备集合的成本是否超过了使用remove()
方法和drop()
方法的时间差。
解决方法是使用db.user.remove({})
删除所有记录。但是,现在这种方法已经被弃用,推荐使用db.user.deleteMany({})
来代替。对于Mongo shell文档中的remove
方法,没有看到任何说明它已被弃用的信息。可以提供支持该说法的链接或引用吗?抱歉,我最好说一下:它将在将来的版本中被弃用。它只是在终端中记录了这一声明。
另外,还有一个提及的方法是db.user.delete_all
,但文中没有提供更多的信息。