聊聊 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   // 恢复数据库
相关推荐
李慕婉学姐1 分钟前
Springboot面向电商的仓库管理系统05uc4267(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
imbackneverdie6 分钟前
AI工具如何重塑综述写作新体验
数据库·人工智能·考研·自然语言处理·aigc·论文·ai写作
Warren9837 分钟前
datagrip新建oracle连接教程
数据库·windows·云原生·oracle·容器·kubernetes·django
焦糖玛奇朵婷38 分钟前
扭蛋机小程序:线上扭蛋机模式发展新形势[特殊字符]
大数据·数据库·程序人生·小程序·软件需求
YMatrix 官方技术社区1 小时前
YMatrix 高可用详解:3 种镜像策略在节点宕机时表现有何不同?
运维·数据库·数据仓库·ai·数据库开发·数据库架构·ymatrix
嘟嘟w1 小时前
SQL注入是什么
数据库·sql·oracle
摇滚侠1 小时前
Redis 零基础到进阶,Redis 主从复制,笔记55-62
数据库·redis·笔记
surtr11 小时前
数据库基础(数据库原理和应用)
数据库·sql·mysql·oracle·database
张人玉1 小时前
c# DataSet 类
数据库·c#·dataset
想用offer打牌1 小时前
数据库大事务有什么危害(面试版)
数据库·后端·架构