如何在 MongoDB 中删除或删除集合?

Posted

技术标签:

【中文标题】如何在 MongoDB 中删除或删除集合?【英文标题】:How to drop or delete a collection in MongoDB? 【发布时间】:2015-09-06 00:39:38 【问题描述】:

在 MongoDB 中删除集合的最佳方法是什么?

我正在使用以下内容:

db.collection.drop()

如the manual中所述:

db.collection.drop()

从数据库中删除一个集合。该方法还删除了任何 与删除的集合关联的索引。该方法提供了一个 包装 drop 命令。

但是我怎样才能从命令行中删除它呢?

【问题讨论】:

【参考方案1】:

所以这些都是有效的方法:

mongo <dbname> --eval 'db.<collection>.drop()'
#     ^^^^^^^^            ^^^^^^^^^^^^

db.<collection>.drop()
#  ^^^^^^^^^^^^

例如,对于数据库 mydb 中的集合 mycollection,您会说:

mongo mydb --eval 'db.mycollection.drop()'

db.mycollection.drop()

这是我对其进行全面测试的方式,创建了一个数据库mydb 和一个集合hello

创建数据库mydb:

> use mydb
switched to db mydb

创建一个集合mycollection

> db.createCollection("mycollection")
 "ok" : 1 

在那里显示所有收藏:

> db.getCollectionNames()
[ "mycollection", "system.indexes" ]

插入一些虚拟数据:

> db.mycollection.insert('a':'b')
WriteResult( "nInserted" : 1 )

确保已插入:

> db.mycollection.find()
 "_id" : ObjectId("55849b22317df91febf39fa9"), "a" : "b" 

删除该集合并确保它不再存在:

> db.mycollection.drop()
true
> db.getCollectionNames()
[ "system.indexes" ]

这也有效(我不重复前面的命令,因为它只是重新创建数据库和集合):

$ mongo mydb --eval 'db.mycollection.drop()'
MongoDB shell version: 2.6.10
connecting to: mydb
true
$

【讨论】:

在 Windows 7 上,我必须使用双引号才能工作:"db.hello.drop()"【参考方案2】:

要删除数据库mydb 的集合users

> use mydb
> db.users.drop()

【讨论】:

【参考方案3】:
--eval "db.getCollection('collection').drop()"

【讨论】:

这并没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方留下评论。 - From Review 这种用于删除集合的命令行方式的优点是可以在脚本中使用并避免转义行为。所以它完全是一个答案:“在 MongoDB 中删除集合的最佳方法是什么” 你好。您回答了一个自 2015 年以来已被接受的问题。您编写了一条不会运行的命令,因为它不完整。而且您没有解释为什么您的答案有效 在我之前的评论中,我解释了使用集合名称作为引用参数的明显优势,也许并不适合所有人。 好吧。首先,正如您所说,您是在评论中回答的,而不是在原始答案中。其次,当有人看到您的答案时,可能会将其作为终端内的单个命令运行,而不是在 mongo 脚本内

以上是关于如何在 MongoDB 中删除或删除集合?的主要内容,如果未能解决你的问题,请参考以下文章

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

如何使用 Pentaho 中的 mongodb 删除步骤删除 mongodb 集合中的文档

mongodb如何删除集合中的指定键值对???

如何从restapi中删除mongodb集合[重复]

如何在羽毛应用中的mongodb中同时使用相同的id删除两个不同集合中的文档

(MONGODB) 删除父集合时如何删除引用的数据