drop
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
。
示例
删除集合示例
以下示例使用drop
命令删除映射到 AWS S3 存储中的 airbnb 和 weather 示例数据集的示例集合。
基本示例
以下示例使用 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 不支持删除通配符集合函数生成的单个集合。