首页主机资讯centos mongodb使用案例

centos mongodb使用案例

时间2025-10-05 03:07:03发布访客分类主机资讯浏览1455
导读:CentOS环境下MongoDB典型使用案例 1. MongoDB基础安装与配置(CentOS 7/8) 在CentOS上安装MongoDB通常有两种方式:YUM包管理器安装(推荐,简单快捷)和源码编译安装(适合定制化需求)。 YUM安装...

CentOS环境下MongoDB典型使用案例

1. MongoDB基础安装与配置(CentOS 7/8)

在CentOS上安装MongoDB通常有两种方式:YUM包管理器安装(推荐,简单快捷)和源码编译安装(适合定制化需求)。

  • YUM安装步骤
    首先添加MongoDB官方YUM仓库,创建文件/etc/yum.repos.d/mongodb-org-4.4.repo,内容如下:
    [mongodb-org-4.4]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/7Server/mongodb-org/4.4/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
    
    执行sudo yum install -y mongodb-org安装MongoDB。启动服务并设置开机自启:
    sudo systemctl start mongod
    sudo systemctl enable mongod
    
  • 基础配置
    编辑配置文件/etc/mongod.conf,修改以下关键参数:
    • bindIp: 0.0.0.0(允许远程访问,生产环境需限制IP);
    • port: 27017(默认端口,可根据需求调整);
    • security.authorization: enabled(启用权限控制,生产环境必选)。
      修改后重启服务:sudo systemctl restart mongod

2. 用户管理与权限控制

MongoDB启用权限控制后,需创建用户并分配角色。以admin数据库为例(管理员账户):

// 切换到admin数据库
use admin
// 创建管理员用户(拥有dbOwner权限)
db.createUser({

  user: "admin",
  pwd: "SecurePassword123!",
  roles: [{
 role: "dbOwner", db: "admin" }
]
}
)
// 验证用户身份
db.auth("admin", "SecurePassword123!")  // 返回1表示成功

为普通数据库(如testdb)创建应用用户:

use testdb
db.createUser({

  user: "app_user",
  pwd: "AppPass456!",
  roles: [{
 role: "readWrite", db: "testdb" }
]  // 读写权限
}
)

生产环境中,建议为用户分配最小必要权限(如readreadWrite),避免过度授权。

3. 数据增删改查(CRUD)操作

testdb数据库的students集合为例,演示常用操作:

  • 插入数据
    use testdb
    // 插入单条文档
    db.students.insert({
     name: "张三", age: 20, gender: "男", major: "计算机科学" }
    )
    // 插入多条文档
    db.students.insertMany([
      {
     name: "李四", age: 21, gender: "女", major: "数学" }
    ,
      {
     name: "王五", age: 19, gender: "男", major: "物理" }
    
    ])
    
  • 查询数据
    // 查询所有学生
    db.students.find()
    // 条件查询(年龄大于19岁)
    db.students.find({
     age: {
     $gt: 19 }
     }
    )
    // 精确匹配(姓名为“张三”)
    db.students.findOne({
     name: "张三" }
    )
    // 排序(按年龄升序)
    db.students.find().sort({
     age: 1 }
    )
    
  • 更新数据
    // 更新单个字段(将“张三”的年龄改为21)
    db.students.updateOne({
     name: "张三" }
    , {
     $set: {
     age: 21 }
     }
    )
    // 更新多个字段(同时修改年龄和专业)
    db.students.updateOne({
     name: "李四" }
    , {
     $set: {
     age: 22, major: "统计学" }
     }
    )
    // 批量更新(将所有年龄小于20的学生年龄加1)
    db.students.updateMany({
     age: {
     $lt: 20 }
     }
    , {
     $inc: {
     age: 1 }
     }
    )
    
  • 删除数据
    // 删除单个文档(删除“王五”)
    db.students.deleteOne({
     name: "王五" }
    )
    // 删除所有年龄大于21的学生
    db.students.deleteMany({
     age: {
     $gt: 21 }
     }
    )
    // 清空集合(谨慎使用)
    db.students.remove({
    }
    )
    

这些操作是MongoDB日常使用的核心,适用于大多数NoSQL场景。

4. 索引优化(提升查询性能)

索引是MongoDB提升查询速度的关键。以下是常见索引操作:

  • 创建索引
    // 在“name”字段上创建升序索引(1表示升序,-1表示降序)
    db.students.createIndex({
     name: 1 }
    )
    // 创建复合索引(同时包含“name”和“age”字段)
    db.students.createIndex({
     name: 1, age: -1 }
    )
    // 创建唯一索引(确保“name”字段值唯一)
    db.students.createIndex({
     email: 1 }
    , {
     unique: true }
        )
    
  • 查看索引
    db.students.getIndexes()  // 列出集合所有索引
    db.students.getIndexKeys()  // 查看索引字段
    
  • 删除索引
    db.students.dropIndex("name_1")  // 删除指定名称的索引(如“name_1”)
    db.students.dropIndexes()  // 删除所有索引(保留_id索引)
    

注意:索引会占用存储空间并影响写入性能,需根据查询需求合理创建。

5. 远程访问配置(跨服务器连接)

若需从其他服务器访问CentOS上的MongoDB,需修改配置并开放端口:

  • 修改配置文件
    编辑/etc/mongod.conf,将bindIp设置为服务器IP或0.0.0.0(允许所有IP访问,生产环境不推荐):
    net:
      bindIp: 192.168.1.100  # 替换为CentOS服务器IP
      port: 27017
    
  • 开放防火墙端口
    sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
    sudo firewall-cmd --reload
    
  • 远程连接测试
    在另一台服务器上使用mongo命令连接:
    mongo --host 192.168.1.100 --port 27017 -u app_user -p AppPass456 --authenticationDatabase testdb
    
    连接成功后会进入MongoDB shell,可执行增删改查操作。

6. 备份与恢复(数据安全保障)

定期备份是防止数据丢失的重要措施,MongoDB提供mongodump(备份)和mongorestore(恢复)工具:

  • 备份整个数据库
    mongodump --host 127.0.0.1 --port 27017 --username admin --password SecurePassword123 --authenticationDatabase admin --db testdb --out /backup/mongodb
    
    备份文件会保存在/backup/mongodb/testdb目录下。
  • 恢复整个数据库
    mongorestore --host 127.0.0.1 --port 27017 --username admin --password SecurePassword123 --authenticationDatabase admin --db testdb /backup/mongodb/testdb
    
  • 备份单个集合
    mongodump --host 127.0.0.1 --port 27017 --username admin --password SecurePassword123 --authenticationDatabase admin --db testdb --collection students --out /backup/mongodb
    
  • 恢复单个集合
    mongorestore --host 127.0.0.1 --port 27017 --username admin --password SecurePassword123 --authenticationDatabase admin --db testdb --collection students /backup/mongodb/testdb/students.bson
    

注意:备份文件应存储在安全位置(如异地服务器或云存储),避免单点故障。

以上案例覆盖了CentOS环境下MongoDB的核心使用场景,从安装配置到日常运维,满足大多数应用需求。实际使用时,需根据业务场景调整参数(如索引设计、权限分配),确保数据库性能与安全。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos mongodb使用案例
本文地址: https://pptw.com/jishu/720911.html
如何配置centos的redis环境 centos mongodb升级方法

游客 回复需填写必要信息