Linux mongo命令有哪些常用操作?

Linux环境下MongoDB的命令行操作是数据库管理的重要技能,涵盖了从基础连接到高级数据管理的多个维度,以下将详细介绍常用命令及其应用场景,帮助用户高效完成数据库操作。

linux mongo命令
(图片来源网络,侵删)

基础连接与身份验证

在Linux终端中,使用mongomongosh(新版推荐)命令连接MongoDB服务,默认连接本地27017端口,可通过--host--port参数指定远程服务器

mongosh --host 192.168.1.100 --port 27017 -u admin -p password --authenticationDatabase admin

连接后需通过use databaseName切换目标数据库,若数据库不存在则会在首次写入时自动创建,身份验证需确保用户已通过db.createUser()提前创建,并具备相应权限。

数据库与集合管理

  1. 数据库操作

    • 查看所有数据库:show dbs
    • 查看当前数据库:db
    • 创建/切换数据库:use mydb(若不存在则创建)
    • 删除数据库:db.dropDatabase()(需在目标数据库下执行)
  2. 集合操作

    linux mongo命令
    (图片来源网络,侵删)
    • 创建集合:db.createCollection('users')
    • 查看集合:show collections
    • 删除集合:db.users.drop()

文档的增删改查

插入文档(Insert)

  • 单条插入:db.users.insertOne({name: "Alice", age: 25, city: "Beijing"})
  • 批量插入:db.users.insertMany([{name: "Bob"}, {name: "Charlie", age: 30}])
    注意:批量插入时若某条文档出错,默认会停止插入,可通过ordered: false参数继续插入剩余文档。

查询文档(Query)

  • 基础查询:db.users.find()(返回所有文档)
    格式化输出:db.users.find().pretty()
  • 条件查询:db.users.find({age: {$gt: 25}})(年龄大于25的用户)
    常用操作符:$gt(大于)、$lt(小于)、$in(包含)、$regex(正则)
  • 投影查询:db.users.find({city: "Shanghai"}, {name: 1, age: 1})(仅返回name和age字段)
  • 分页查询:db.users.find().skip(10).limit(5)(跳过前10条,返回5条)

更新文档(Update)

  • 单条更新:db.users.updateOne({name: "Alice"}, {$set: {age: 26}})
  • 批量更新:db.users.updateMany({city: "Beijing"}, {$set: {status: "active"}})
  • 删除字段:db.users.updateMany({}, {$unset: {tempField: 1}})

删除文档(Delete)

  • 单条删除:db.users.deleteOne({name: "Bob"})
  • 批量删除:db.users.deleteMany({age: {$lt: 18}})
  • 清空集合:db.users.deleteMany({})

索引与性能优化

索引能显著提升查询效率,但会增加写入开销,常用操作包括:

  • 创建索引:db.users.createIndex({name: 1})(1表示升序)
    复合索引:db.users.createIndex({name: 1, age: -1})
  • 查看索引:db.users.getIndexes()
  • 删除索引:db.users.dropIndex("name_1")

聚合操作

聚合管道用于处理复杂数据分析,常用阶段包括:

db.users.aggregate([
  {$match: {age: {$gte: 25}}},   // 筛选年龄≥25的用户
  {$group: {_id: "$city", count: {$sum: 1}}},  // 按城市分组并计数
  {$sort: {count: -1}}          // 按计数降序排列
])

常用操作符:$group(分组)、$project(重塑文档)、$unwind(展开数组)、$lookup(关联查询)。

数据备份与恢复

  • 备份数据库:mongodump --db mydb --out /backup/
  • 恢复数据库:mongorestore --db mydb /backup/mydb/
  • 备份整个实例:mongodump --host 192.168.1.100 --port 27017 --out /full_backup/

用户与权限管理

  • 创建管理员用户:
    use admin
    db.createUser({
      user: "admin",
      pwd: "password",
      roles: [{role: "userAdminAnyDatabase", db: "admin"}]
    })
  • 创建普通用户:
    use mydb
    db.createUser({
      user: "readonly",
      pwd: "123456",
      roles: [{role: "read", db: "mydb"}]
    })

常见问题排查

  • 查看服务状态:systemctl status mongod
  • 查看日志:tail -f /var/log/mongodb/mongod.log
  • 连接问题:检查防火墙规则(ufw status)及端口占用(netstat -tuln | grep 27017

相关问答FAQs

Q1: 如何在Linux中查看MongoDB当前连接的IP地址?
A1: 使用db.runCommand({connPoolStats: 1})命令可查看连接池信息,其中包含客户端IP地址,或通过netstat -tuln | grep 27017查看监听端口,结合ss -tulnp | grep mongod查看具体连接来源。

linux mongo命令
(图片来源网络,侵删)

Q2: 执行MongoDB查询时出现”too much data for sort”错误,如何解决?
A2: 该错误通常因查询结果集过大且未使用索引导致排序超时,解决方案:① 为排序字段添加索引(如db.users.createIndex({name: 1}));② 使用allowDiskUse: true参数启用临时磁盘排序(db.users.find().sort({name: 1}).allowDiskUse(true));③ 优化查询条件减少返回数据量。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/416330.html<

(0)
运维的头像运维
上一篇2025-10-22 07:26
下一篇 2025-10-22 07:30

相关推荐

  • Linux命令怎么进入?

    进入Linux命令行界面是使用Linux系统的基础操作,无论是系统管理员、开发者还是普通用户,掌握进入命令行的方法都是必备技能,Linux命令行(也称为终端、Shell或控制台)提供了强大的文本交互方式,能够高效管理系统、运行程序和调试问题,以下是进入Linux命令行的详细步骤和注意事项,涵盖不同场景和发行版的……

    2025-11-19
    0
  • Android如何直接运行Linux命令?

    在Android系统中运行Linux命令是一个常见的需求,尤其是在需要系统级操作或调试的场景中,Android基于Linux内核,但其用户空间和传统的Linux发行版有较大差异,因此运行命令的方式也有所不同,以下是几种主要的方法及其详细说明,最直接的方法是通过Android的终端模拟器应用,在Google Pl……

    2025-11-17
    0
  • 按键精灵如何执行DOS命令?

    按键精灵是一款功能强大的自动化工具,它通过模拟用户的键盘、鼠标等操作,实现重复性任务的自动化执行,广泛应用于游戏辅助、办公自动化、测试等多个领域,而DOS命令则是操作系统早期提供的命令行界面,通过一系列文本命令来管理计算机资源、执行程序,尽管图形界面已成为主流,但DOS命令凭借其高效、灵活的特点,在特定场景下仍……

    2025-11-16
    0
  • 如何用adb命令行获取root权限?

    通过adb命令行获取Android设备的root权限是高级用户和开发者常用的操作,但需注意root操作可能带来安全风险和设备保修失效等问题,以下从准备工作、常用命令、风险提示及替代方案等方面进行详细说明,准备工作设备要求:Android设备需已解锁Bootloader(不同品牌解锁方式不同,如小米需申请解锁码……

    2025-11-16
    0
  • MongoDB如何查看当前安装版本?

    在 MongoDB 中,查看数据库版本信息是日常运维和开发中常见的操作,无论是排查兼容性问题、确认功能支持范围,还是升级前的版本核对,都需要准确获取当前 MongoDB 实例的版本号,以下是关于 MongoDB 查看版本命令的详细说明,涵盖多种场景和方法,帮助用户全面掌握版本查询技巧,使用 mongod 或 m……

    2025-11-16
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注