服务器测评网
我们一直在努力

linux mongodb命令有哪些常用操作及使用方法?

Linux环境下MongoDB命令详解

MongoDB作为一款流行的NoSQL数据库,在Linux系统中的应用广泛,掌握其核心命令是高效管理数据库的关键,本文将详细介绍Linux环境下MongoDB的常用命令,涵盖服务管理、数据库操作、集合管理、文档操作及索引维护等方面,帮助用户系统化掌握MongoDB的使用技巧。

linux mongodb命令有哪些常用操作及使用方法?

MongoDB服务管理

在Linux系统中,MongoDB通常以系统服务的形式运行,通过命令行可以轻松启动、停止或重启服务。

  1. 启动MongoDB服务
    使用systemctl命令是现代Linux发行版的推荐方式:

    sudo systemctl start mongod

    若使用service命令(适用于旧版系统):

    sudo service mongod start
  2. 停止MongoDB服务

    sudo systemctl stop mongod
  3. 重启MongoDB服务

    sudo systemctl restart mongod
  4. 设置开机自启

    sudo systemctl enable mongod
  5. 查看服务状态

    sudo systemctl status mongod

MongoDB shell连接与基本操作

MongoDB提供了交互式shell工具mongo(新版为mongosh),用于直接操作数据库。

  1. 连接MongoDB服务
    默认连接本地服务:

    mongosh

    指定主机和端口:

    mongosh --host 192.168.1.100 --port 27017
  2. 显示数据库列表

    show dbs
  3. 切换数据库

    use mydatabase

    若数据库不存在,插入数据时会自动创建。

  4. 查看当前数据库

    db
  5. 删除数据库

    linux mongodb命令有哪些常用操作及使用方法?

    db.dropDatabase()

集合管理

集合是MongoDB中存储文档的容器,支持动态创建与管理。

  1. 创建集合

    db.createCollection("mycollection")

    插入数据时也会自动创建集合:

    db.mycollection.insertOne({name: "test", value: 100})
  2. 查看集合列表

    show collections
  3. 删除集合

    db.mycollection.drop()
  4. 集合统计信息

    db.mycollection.stats()

文档操作

文档是MongoDB的数据核心,支持增删改查操作。

  1. 插入文档

    • 插入单个文档:
      db.users.insertOne({name: "Alice", age: 25, city: "Beijing"})
    • 插入多个文档:
      db.users.insertMany([
        {name: "Bob", age: 30, city: "Shanghai"},
        {name: "Charlie", age: 28, city: "Guangzhou"}
      ])
  2. 查询文档

    • 查询所有文档:
      db.users.find()
    • 条件查询(如年龄大于25):
      db.users.find({age: {$gt: 25}})
    • 投影查询(仅返回name和city字段):
      db.users.find({}, {name: 1, city: 1, _id: 0})
  3. 更新文档

    • 更新单个文档:
      db.users.updateOne({name: "Alice"}, {$set: {age: 26}})
    • 更新多个文档:
      db.users.updateMany({city: "Beijing"}, {$set: {country: "China"}})
  4. 删除文档

    • 删除单个文档:
      db.users.deleteOne({name: "Bob"})
    • 删除多个文档:
      db.users.deleteMany({age: {$lt: 25}})

索引优化

索引是提升查询性能的关键工具。

  1. 创建索引

    • 单字段索引:
      db.users.createIndex({name: 1})
    • 复合索引:
      db.users.createIndex({name: 1, age: -1})
  2. 查看索引

    db.users.getIndexes()
  3. 删除索引

    linux mongodb命令有哪些常用操作及使用方法?

    db.users.dropIndex({name: 1})
  4. 分析查询性能

    db.users.find({name: "Alice").explain("executionStats")

用户与权限管理

MongoDB支持基于角色的访问控制(RBAC)。

  1. 创建管理员用户

    use admin
    db.createUser({
      user: "admin",
      pwd: "password123",
      roles: [{role: "userAdminAnyDatabase", db: "admin"}]
    })
  2. 创建普通用户

    use mydatabase
    db.createUser({
      user: "readonly",
      pwd: "pass123",
      roles: [{role: "read", db: "mydatabase"}]
    })
  3. 认证登录

    mongosh -u admin -p --authenticationDatabase admin

数据备份与恢复

  1. 备份数据库

    mongodump --db mydatabase --out /backup/
  2. 恢复数据库

    mongorestore --db mydatabase /backup/mydatabase/
  3. 备份整个服务

    mongodump --host 192.168.1.100 --port 27017 --out /full_backup/

常用维护命令

  1. 查看MongoDB版本

    db.version()
  2. 服务器状态

    db.serverStatus()
  3. 集合验证

    db.mycollection.validate()
  4. 修复数据库

    mongod --repair --dbpath /data/db/

熟练掌握Linux环境下的MongoDB命令,是高效管理和运维数据库的基础,本文从服务管理、数据库操作到性能优化,系统梳理了常用命令及其应用场景,用户可根据实际需求结合命令参数灵活运用,进一步提升MongoDB的使用效率。

赞(0)
未经允许不得转载:好主机测评网 » linux mongodb命令有哪些常用操作及使用方法?