MongoDB

关注公众号 jb51net

关闭
首页 > 数据库 > MongoDB > MongoDB数据库与集合删除

MongoDB数据库与集合删除操作方法详解

作者:Seal^_^

MongoDB是一款开源的文档型数据库管理系统,属于非关系型数据库范畴,这篇文章主要介绍了MongoDB数据库与集合删除操作方法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

1. MongoDB 数据删除架构总览

2. 数据库删除详解

2.1 删除数据库流程图

2.2 数据库删除步骤

  1. 确认当前数据库

    db  // 显示当前数据库
    
  2. 切换到目标数据库

    use db_to_delete
    
  3. 执行删除命令

    db.dropDatabase()
    
  4. 验证删除结果

    show dbs
    

2.3 删除示例

// 查看所有数据库
> show dbs
admin      240.00 KiB
config     108.00 KiB
local       80.00 KiB
mytest_db   16.00 KiB


// 切换到目标数据库
> use mytest_db   
switched to db mytest_db   

// 删除数据库
> db.dropDatabase()
{ "dropped" : "mytest_db", "ok" : 1 }

// 验证删除
> show dbs
admin      240.00 KiB
config     108.00 KiB
local       80.00 KiB

3. 集合删除详解

3.1 集合删除流程图

3.2 集合删除步骤

  1. 查看数据库中的集合
    show collections
    

  1. 执行删除命令

    db.collection_name.drop()
    
  2. 验证删除结果

    show collections
    

3.3 删除示例

// 创建测试集合
> db.createCollection("products")
{ "ok" : 1 }

// 查看集合
> show collections
products

// 删除集合
> db.products.drop("products")
true

// 验证删除
> show collections
> 

4. 删除操作对比

特性dropDatabasedrop
作用范围整个数据库单个集合
删除内容所有集合+元数据文档+索引
执行速度较慢较快
锁级别数据库锁集合锁
返回结果{dropped: “db_name”, ok: 1}true/false
恢复可能需要备份需要备份

5. 删除前的安全检查

安全检查清单:

  1. 确认数据库/集合名称
  2. 检查应用程序依赖
  3. 验证用户权限
    db.runCommand({connectionStatus: 1}).authInfo.authenticatedUserPrivileges
    
  4. 确保有最新备份

6. 高级删除场景

6.1 条件删除文档

// 删除所有匹配文档
db.orders.deleteMany({status: "cancelled"})

// 删除单个匹配文档
db.orders.deleteOne({_id: ObjectId("...")})

6.2 删除系统集合

// 删除system.profile集合(需在admin库)
use admin
db.setProfilingLevel(0)
db.system.profile.drop()

6.3 使用mongodump备份后删除

# 先备份
mongodump --db sales --out /backup/

# 再删除
mongosh --eval "use sales; db.dropDatabase()"

7. 删除操作监控

7.1 查看删除操作

// 查看当前操作
db.currentOp({
  "op": "command",
  "command.drop": {$exists: true}
})

7.2 审计日志配置

# mongod.conf
auditLog:
  destination: file
  format: JSON
  path: /var/log/mongodb/audit.json
  filter: '{ atype: "dropCollection" }'

8. 故障恢复方案

8.1 误删恢复流程

8.2 常用恢复命令

# 从备份恢复整个数据库
mongorestore --db sales /backup/sales/

# 恢复特定集合
mongorestore --db sales --collection orders /backup/sales/orders.bson

9. 最佳实践建议

  1. 删除前双重确认

    // 确认数据库大小
    db.stats()
    
    // 确认集合文档数
    db.products.countDocuments()
    
  2. 生产环境防护

    // 禁止危险操作(开发环境)
    db.adminCommand({
      setParameter: 1,
      disableDropDatabase: 1
    })
    
  3. 自动化备份策略

    # 每日定时备份
    0 2 * * * mongodump --out /backup/$(date +\%Y\%m\%d)
    
  4. 权限控制

    // 创建专用管理用户
    use admin
    db.createUser({
      user: "dbadmin",
      pwd: "securepassword",
      roles: ["dbAdminAnyDatabase"]
    })
    

通过本文的全面介绍,您应该已经掌握了MongoDB中数据库和集合删除的所有关键知识。请始终记住:删除操作是不可逆的,执行前务必备份重要数据并确认操作对象!

总结

到此这篇关于MongoDB数据库与集合删除操作方法的文章就介绍到这了,更多相关MongoDB数据库与集合删除内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文