聊聊 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   // 恢复数据库
相关推荐
Zfox_18 分钟前
Redis:Hash数据类型
服务器·数据库·redis·缓存·微服务·哈希算法
陈丹阳(滁州学院)2 小时前
若依添加添加监听容器配置(删除键,键过期)
数据库·oracle
远方16093 小时前
14-Oracle 23ai Vector Search 向量索引和混合索引-实操
数据库·ai·oracle
GUIQU.4 小时前
【Oracle】数据仓库
数据库·oracle
恰薯条的屑海鸥5 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十六期-SSRF模块)
数据库·学习·安全·web安全·渗透测试·网络安全学习
咖啡啡不加糖5 小时前
Redis大key产生、排查与优化实践
java·数据库·redis·后端·缓存
曼汐 .5 小时前
数据库管理与高可用-MySQL高可用
数据库·mysql
2301_793102495 小时前
Linux——MySql数据库
linux·数据库
喵叔哟5 小时前
第4章:Cypher查询语言基础
数据库
刘 大 望5 小时前
数据库-联合查询(内连接外连接),子查询,合并查询
java·数据库·sql·mysql