【发布时间】:2015-09-06 00:39:38
【问题描述】:
在 MongoDB 中删除集合的最佳方法是什么?
我正在使用以下内容:
db.collection.drop()
如the manual中所述:
db.collection.drop()
从数据库中删除一个集合。该方法还删除了任何 与删除的集合关联的索引。该方法提供了一个 包装 drop 命令。
但是我怎样才能从命令行中删除它呢?
【问题讨论】:
标签: mongodb collections
在 MongoDB 中删除集合的最佳方法是什么?
我正在使用以下内容:
db.collection.drop()
如the manual中所述:
db.collection.drop()
从数据库中删除一个集合。该方法还删除了任何 与删除的集合关联的索引。该方法提供了一个 包装 drop 命令。
但是我怎样才能从命令行中删除它呢?
【问题讨论】:
标签: mongodb collections
所以这些都是有效的方法:
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
$
【讨论】:
"db.hello.drop()"
要删除数据库mydb 的集合users:
> use mydb
> db.users.drop()
【讨论】:
--eval "db.getCollection('collection').drop()"
【讨论】: