drop
drop
命令从联合数据库实例存储配置中删除指定的集合或视图。使用通配符"*"
删除由通配符集合函数(即collectionName()
)生成的所有集合,包括通配符集合规则本身。不能单独删除通配符集合函数生成的集合。
语法
db.runCommand({ "drop" : "<collection-name|*>" })
db.runCommand({ "drop" : "<view-name>" })
参数
参数 | 类型 | 说明 | 必需? |
---|---|---|---|
<collection-name> | 字符串 | 要删除的集合名称或通配符
| 是 |
参数 | 类型 | 说明 | 必需? |
---|---|---|---|
<view-name> | 字符串 | 要删除的视图的名称。 | 是 |
输出
如果成功,该命令将打印以下输出。您可以通过运行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
。
举例
删除集合示例
以下示例使用drop
命令删除映射到样本数据集的样本集合, airbnb 和 天气 ,位于 AWS S3 存储中。
基本示例
以下示例使用 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 }
删除视图示例
以下命令会删除 Airbnb 上 名为“listings” 的sample
视图 数据库中的集合:
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 不支持删除通配符集合函数生成的单个集合。