大数据

MongoDB 安装与使用指南

阅读量:8次 发布时间::2026/1/5


一、安装 MongoDB

1. 官方下载地址

官网首页:https://www.mongodb.com/


下载中心:https://www.mongodb.com/try/download/community


企业版:https://www.mongodb.com/try/download/enterprise


Atlas云服务:https://www.mongodb.com/cloud/atlas(无需安装,注册即用)


2. 各平台安装方式

Windows 系统

bash

# 方式1:使用MSI安装程序(推荐初学者)

1. 访问下载页面,选择 Windows 版本

2. 下载 .msi 安装包

3. 双击运行,按向导安装

4. 可选安装 MongoDB Compass(图形界面工具)


# 方式2:使用 Chocolatey 包管理器

choco install mongodb


# 安装后验证

mongod --version

macOS 系统

bash

# 方式1:使用 Homebrew(最简便)

brew tap mongodb/brew

brew install mongodb-community


# 启动服务

brew services start mongodb-community


# 方式2:下载 .tgz 压缩包

# 从官网下载,解压后配置环境变量

Linux 系统

bash

# Ubuntu/Debian

# 1. 导入公钥

wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -


# 2. 添加源

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list


# 3. 安装

sudo apt-get update

sudo apt-get install -y mongodb-org


# 4. 启动服务

sudo systemctl start mongod

sudo systemctl enable mongod


# CentOS/RHEL

# 创建 repo 文件

sudo vi /etc/yum.repos.d/mongodb-org-6.0.repo

# 添加官方源后安装

Docker 方式(跨平台推荐)

bash

# 拉取镜像

docker pull mongo


# 运行容器

docker run -d \

 --name mongodb \

 -p 27017:27017 \

 -v ~/mongo_data:/data/db \

 -e MONGO_INITDB_ROOT_USERNAME=admin \

 -e MONGO_INITDB_ROOT_PASSWORD=123456 \

 mongo:latest


# 或使用 docker-compose

3. 云服务(无需安装)

MongoDB Atlas:官方云服务,免费512MB存储


其他云厂商:


AWS DocumentDB


Azure Cosmos DB MongoDB API


阿里云 MongoDB


二、基本使用教程

1. 启动 MongoDB 服务

bash

# Windows(如果安装时配置了服务)

# 服务自动启动,或从服务管理启动


# macOS/Linux

sudo systemctl start mongod  # 或 brew services start mongodb-community


# 检查状态

sudo systemctl status mongod

2. 连接数据库

bash

# 方式1:命令行客户端

mongosh  # 新版MongoDB Shell(推荐)

# 或

mongo    # 旧版,逐渐淘汰


# 方式2:带认证的连接

mongosh "mongodb://username:password@localhost:27017/dbname"


# 方式3:图形界面工具

# - MongoDB Compass(官方,免费)

# - Robo 3T / Studio 3T

# - NoSQLBooster

3. 基本操作命令

数据库操作

javascript

// 查看所有数据库

show dbs


// 切换/创建数据库

use mydatabase  // 当第一次插入数据时真正创建


// 查看当前数据库

db


// 删除数据库

db.dropDatabase()

集合(表)操作

javascript

// 查看所有集合

show collections


// 创建集合

db.createCollection("users")


// 删除集合

db.users.drop()

文档(记录)CRUD操作

插入文档


javascript

// 插入单条

db.users.insertOne({

 name: "张三",

 age: 25,

 email: "zhangsan@example.com",

 tags: ["developer", "nodejs"],

 created_at: new Date()

})


// 插入多条

db.users.insertMany([

 { name: "李四", age: 30 },

 { name: "王五", age: 28 }

])

查询文档


javascript

// 查询所有

db.users.find()


// 美化输出

db.users.find().pretty()


// 条件查询

db.users.find({ age: { $gt: 25 } })  // 年龄大于25

db.users.find({ name: /张/ })         // 正则匹配


// 查询特定字段

db.users.find({}, { name: 1, age: 1 })  // 只返回name和age


// 查询一条

db.users.findOne({ name: "张三" })


// 计数

db.users.countDocuments({ age: { $gt: 25 } })

更新文档


javascript

// 更新一条

db.users.updateOne(

 { name: "张三" },

 { $set: { age: 26, updated_at: new Date() } }

)


// 更新多条

db.users.updateMany(

 { age: { $lt: 30 } },

 { $set: { category: "young" } }

)


// 替换文档

db.users.replaceOne(

 { name: "张三" },

 { name: "张三", age: 27, city: "北京" }

)

删除文档


javascript

// 删除一条

db.users.deleteOne({ name: "李四" })


// 删除多条

db.users.deleteMany({ age: { $lt: 25 } })

4. 索引操作

javascript

// 创建索引

db.users.createIndex({ email: 1 })          // 单字段索引

db.users.createIndex({ name: 1, age: -1 })  // 复合索引

db.users.createIndex({ "address.city": 1 }) // 嵌套字段索引


// 创建唯一索引

db.users.createIndex({ email: 1 }, { unique: true })


// 查看索引

db.users.getIndexes()


// 删除索引

db.users.dropIndex("email_1")

5. 聚合管道示例

javascript

// 分组统计

db.orders.aggregate([

 { $match: { status: "completed" } },

 { $group: {

     _id: "$customer_id",

     total: { $sum: "$amount" },

     count: { $sum: 1 }

   }

 },

 { $sort: { total: -1 } },

 { $limit: 10 }

])

三、编程语言连接示例

Node.js

javascript

// 安装驱动

npm install mongodb


// 连接示例

const { MongoClient } = require('mongodb');


async function main() {

 const uri = "mongodb://localhost:27017";

 const client = new MongoClient(uri);

 

 try {

   await client.connect();

   const database = client.db("mydb");

   const collection = database.collection("users");

   

   // 插入示例

   const result = await collection.insertOne({

     name: "测试用户",

     created_at: new Date()

   });

   console.log("插入ID:", result.insertedId);

   

 } finally {

   await client.close();

 }

}

main();

Python

python

# 安装驱动

pip install pymongo


# 连接示例

from pymongo import MongoClient

from datetime import datetime


client = MongoClient('localhost', 27017)

db = client['mydb']

collection = db['users']


# 插入数据

collection.insert_one({

   'name': '测试用户',

   'created_at': datetime.now()

})


# 查询数据

for user in collection.find({'name': '测试用户'}):

   print(user)

Java

java

// Maven依赖

// <dependency>

//   <groupId>org.mongodb</groupId>

//   <artifactId>mongodb-driver-sync</artifactId>

//   <version>4.9.0</version>

// </dependency>


import com.mongodb.client.MongoClient;

import com.mongodb.client.MongoClients;

import com.mongodb.client.MongoCollection;

import com.mongodb.client.MongoDatabase;

import org.bson.Document;


MongoClient client = MongoClients.create("mongodb://localhost:27017");

MongoDatabase database = client.getDatabase("mydb");

MongoCollection<Document> collection = database.getCollection("users");


// 插入文档

Document doc = new Document("name", "测试用户")

               .append("created_at", new Date());

collection.insertOne(doc);

四、图形化管理工具

1. MongoDB Compass(官方推荐)

下载:https://www.mongodb.com/products/compass


特性:


可视化的查询构建器


实时性能监控


索引管理


导入/导出数据


Schema分析


2. Studio 3T / Robo 3T

下载:https://studio3t.com/


特性:


强大的SQL查询支持


数据对比和同步


代码生成


可视化的聚合管道构建器


3. NoSQLBooster

下载:https://www.nosqlbooster.com/


特性:


类似SQL的查询语言


智能提示


可视化工具丰富


五、最佳实践建议

1. 安全配置

bash

# 启用认证(首次启动后配置)

# 1. 连接mongosh

mongosh


# 2. 创建管理员

use admin

db.createUser({

 user: "admin",

 pwd: "strong_password",

 roles: ["root"]

})


# 3. 重启启用认证

# 修改配置文件 /etc/mongod.conf

security:

 authorization: enabled


# 4. 重启服务

sudo systemctl restart mongod

2. 生产环境配置

yaml

# 配置文件示例(/etc/mongod.conf)

storage:

 dbPath: /var/lib/mongodb

 journal:

   enabled: true

systemLog:

 destination: file

 path: /var/log/mongodb/mongod.log

 logAppend: true

net:

 port: 27017

 bindIp: 127.0.0.1  # 生产环境限制IP

processManagement:

 fork: true

security:

 authorization: enabled

3. 备份与恢复

bash

# 备份单个数据库

mongodump --uri="mongodb://localhost:27017/mydb" --out=/backup/


# 恢复数据库

mongorestore --uri="mongodb://localhost:27017" /backup/mydb/


# Atlas云备份(自动)

# 在Atlas控制台配置备份策略

六、学习资源

官方资源

文档:https://docs.mongodb.com/


大学课程:https://university.mongodb.com/(免费认证课程)


中文手册:https://docs.mongoing.com/




需要更多资料,请留言

您的联系方式会被永久保密,仅用于将资料传送给您。 *