drop 命令从联合数据库实例存储配置中删除指定的集合或视图。使用通配符 "*" 删除 通配符集合函数(即 collectionName())生成的所有集合,包括通配符集合规则本身。不能单独删除通配符集合函数生成的集合。
语法
db.runCommand({ "drop" : "<collection-name|*>" })
db.runCommand({ "drop" : "<view-name>" })
参数
Parameter | 类型 | 说明 | 必需? |
|---|---|---|---|
| 字符串 | 要删除的集合名称或通配符
| 是 |
Parameter | 类型 | 说明 | 必需? |
|---|---|---|---|
| 字符串 | 要删除的视图的名称。 | 是 |
输出
如果成功,该命令将返回以下输出。您可以运行 show collections 命令来验证结果。如果命令失败,请参阅 排除错误了解建议的解决方案。
{ "ok" : 1, "ns" : "<database>.<collection>", "nIndexesWas" : 0 }
其中:
ns反映了集合命名空间,其中包括数据库名称、点 (.) 分隔符和集合名称。例如:<database>.<collection>。nIndexesWas反映了索引数量,其值在 Data Federation 上始终为0。
如果成功,该命令将返回以下输出。您可以运行 storageGetConfig 命令来验证结果。如果命令失败,请参阅排除错误了解建议的解决方案。
{ "ok" : 1, "ns" : "<database>.<view>", "nIndexesWas" : 0 }
其中:
ns反映了视图命名空间,其中包括数据库名称、点 (.) 分隔符和视图名称。例如:<database>.<view>。nIndexesWas反映了索引数量,其值在 Data Federation 上始终为0。
示例
删除集合示例
以下示例使用 命令删除示例到 Amazon Web Services S3 drop存储中的示例数据集、 airbnb 和 天气 的样本集合。
基本示例
以下示例使用 drop 命令删除存储配置中名为 sample 的数据库中名为 airbnb 的示例集合。
use sample db.runCommand({ "drop" : "airbnb"})
上一个命令打印以下输出:
{ "ok" : 1, "ns" : "sample.airbnb", "nIndexesWas" : 0 }
通配符示例
以下示例使用 drop 命令删除通配符集合函数 (collectionName()) 以及通配符集合函数在存储配置中名为 sample 的数据库中创建的所有集合。
use sample db.runCommand ({ "drop" : "*" })
上一个命令打印以下输出:
{ "ok" : 1, "ns" : "sample.*", "nIndexesWas" : 0 }
删除视图示例
以下命令会删除 sample数据库中 Airbnb集合上名为“listings”的视图:
use sample db.runCommand({ "drop" : "listings" })
上一命令会返回以下输出:
例子
{ "ok" : 1, "ns" : "sample.listings", "nIndexesWas" : 0 }
故障排除错误
如果命令失败,则返回以下错误之一。
原因:命名空间(数据库、集合或视图)不存在。
{ ok: 0, errmsg: "ns not found", code: 26, codeName: "NamespaceNotFound" }
解决方案:确保命令中指定的命名空间有效并存在于存储配置中。如有必要,使用 getStorageConfig 命令检索存储配置中的有效数据库、集合和视图列表。
原因:尝试删除由通配符集合函数 (collectionName()) 创建的集合。
{ ok: 0, errmsg: "cannot drop a collection created from a wildcard", code: 26, codeName: "NamespaceNotFound" }
解决方案:确保您删除的集合不是由通配符集合函数 (collectionName()) 动态生成的单个集合。Data Federation 不支持删除通配符集合函数生成的单个集合。