聊聊 Mongod 以及 MongoDB 常用命令

Mongod

mongod 是 MongoDB 数据库服务器的核心守护进程,它负责启动并管理 MongoDB 数据库实例。简单来说,mongod 是 MongoDB 数据库服务器程序,它负责处理数据存储、数据请求、数据复制等后台服务。运行 mongod 是启动 MongoDB 数据库的第一步,它将 MongoDB 实例运行在后台。主要作用如下:

  • 处理来自客户端的连接和请求。
  • 管理数据的读写操作。
  • 提供数据库实例的复制和备份功能。
  • 维护 MongoDB 集群中的节点通信。

可以使用以下命令来启动 mongod:

bash 复制代码
mongod --config /etc/mongod.conf

在实际项目中,推荐使用 配置文件(如 mongod.conf)来管理 MongoDB 的启动配置。例如,在配置文件中可以设置数据存储路径、日志路径、绑定的IP地址等。

mongod.conf 配置文件:

markup 复制代码
# 数据存储路径
storage:
  dbPath: /var/lib/mongodb

# 日志文件路径
systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log

# 监听端口和IP地址
net:
  port: 27017
  bindIp: 127.0.0.1

MongoDB 常用命令

MongoDB 提供了很多命令,主要通过 MongoDB Shell(mongo)或者驱动程序与数据库进行交互。

数据库相关命令

powershell 复制代码
db                   // 显示当前数据库
show dbs             // 查看所有数据库
use <database_name>  // 创建/切换数据库,如果数据库不存在,则会创建一个新的数据库
db.dropDatabase()    // 删除数据库

集合相关命令

powershell 复制代码
show collections                       // 显示当前数据库中的所有集合
db.createCollection("collection_name") // 创建集合
db.collection_name.drop()              // 删除集合

文档操作命令(CRUD)

powershell 复制代码
db.collection_name.insert({ name: "John", age: 30 })                // 插入文档
db.collection_name.find()                                           // 查询所有文档
db.collection_name.find({ name: "John" })                           // 查询指定条件的文档
db.collection_name.update({ name: "John" }, { $set: { age: 31 } })  // 更新文档,使用 $set 仅更新指定字段。
db.collection_name.remove({ name: "John" })                         // 删除文档
db.collection_name.count()                                          // 计数文档数量

索引操作命令

powershell 复制代码
db.collection_name.createIndex({ name: 1 })      // 创建索引,为 name 字段创建升序索引
db.collection_name.getIndexes()                  // 查看集合的所有索引
db.collection_name.dropIndex("index_name")       // 删除索引

聚合操作命令

powershell 复制代码
db.collection_name.aggregate([
    { $match: { age: { $gt: 25 } } }, // 使用 $match 过滤数据
    { $group: { _id: "$name", totalAge: { $sum: "$age" } } } // 并使用 $group 按 name 字段分组,计算 age 总和
])  

其他管理命令

powershell 复制代码
db.stats()                  // 查看数据库状态
db.collection_name.stats()  // 查看集合状态
db.repairDatabase()         // 修复数据库
db.currentOp()              // 查看当前连接的客户端

用户和权限管理命令

powershell 复制代码
// 创建用户
db.createUser({
    user: "username",
    pwd: "password",
    roles: [ { role: "readWrite", db: "database_name" } ]
})
// 删除用户
db.dropUser("username")
// 验证用户登录
db.auth("username", "password")

MongoDB 配置启动环境变量

通过 环境变量 配置 MongoDB,特别是在容器化环境中:

powershell 复制代码
export MONGO_INITDB_ROOT_USERNAME=root
export MONGO_INITDB_ROOT_PASSWORD=example
mongod --auth --dbpath /data/db

通过这种方式,可以轻松设置 MongoDB 的用户名和密码,并启用身份验证。

备份与恢复

powershell 复制代码
mongodump --db database_name --out /backup/directory              // 备份数据库
mongorestore --db database_name /backup/directory/database_name   // 恢复数据库
相关推荐
数据智能老司机5 小时前
CockroachDB权威指南——CockroachDB SQL
数据库·分布式·架构
数据智能老司机6 小时前
CockroachDB权威指南——开始使用
数据库·分布式·架构
松果猿6 小时前
空间数据库学习(二)—— PostgreSQL数据库的备份转储和导入恢复
数据库
无名之逆6 小时前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
s9123601016 小时前
rust 同时处理多个异步任务
java·数据库·rust
数据智能老司机6 小时前
CockroachDB权威指南——CockroachDB 架构
数据库·分布式·架构
hzulwy7 小时前
Redis常用的数据结构及其使用场景
数据库·redis
程序猿熊跃晖7 小时前
解决 MyBatis-Plus 中 `update.setProcInsId(null)` 不生效的问题
数据库·tomcat·mybatis
Three~stone8 小时前
MySQL学习集--DDL
数据库·sql·学习
Qi妙代码8 小时前
MYSQL基础
数据库·mysql·oracle