MongoDB 入门使用教程

MongoDB 入门使用教程

MongoDB 是一个开源的 NoSQL 数据库,使用文档(JSON-like)存储数据,与传统的关系型数据库不同,它不依赖表结构和行列的约束。MongoDB 提供了强大的查询能力,支持高效的数据存储和检索,适合大数据存储、实时数据处理、快速原型设计等应用场景。

本教程将帮助你从基础到进阶,逐步掌握 MongoDB 的基本使用方法。

一、安装 MongoDB

在开始使用 MongoDB 之前,首先需要安装 MongoDB。

完成安装后,确保你已经启动了 MongoDB 服务。

二、连接 MongoDB

安装 MongoDB 后,你可以使用 MongoDB 提供的命令行工具 mongo 连接到数据库。

  1. 启动 MongoDB 服务(在命令行中执行):

    bash 复制代码
    mongod --dbpath C:\data\db
  2. 连接 MongoDB

    打开新的命令行窗口,输入以下命令:

    bash 复制代码
    mongo

    连接成功后,你将进入 MongoDB Shell,可以在其中执行 MongoDB 的各种命令。

三、数据库基本操作

3.1 创建数据库

在 MongoDB 中,数据库是在你首次插入数据时自动创建的,因此你不需要显式地创建数据库。你可以使用 use 命令切换到一个数据库,如果数据库不存在,它会被自动创建。

bash 复制代码
use mydb

这里 mydb 是数据库名,执行后会切换到 mydb 数据库,若不存在则会在插入数据时创建。

3.2 查看数据库

查看当前系统中存在的所有数据库:

bash 复制代码
show dbs

3.3 删除数据库

要删除当前使用的数据库,可以使用 db.dropDatabase() 命令。

bash 复制代码
db.dropDatabase()

该命令会删除当前数据库及其所有数据。

四、集合基本操作

在 MongoDB 中,数据被存储在集合(Collection)中,类似于传统关系型数据库中的表。

4.1 创建集合

集合是在你插入第一条数据时自动创建的。因此,你不需要显式地创建集合,只要插入数据,它就会自动创建。

bash 复制代码
use mydb  # 切换到数据库
db.createCollection("mycollection")  # 显式创建集合

4.2 查看集合

要查看当前数据库中所有的集合,可以使用:

bash 复制代码
show collections

4.3 删除集合

如果你想删除某个集合,可以使用:

bash 复制代码
db.mycollection.drop()

这会删除 mycollection 集合及其数据。

五、文档基本操作

MongoDB 的核心是文档,数据以 JSON-like 格式存储,每个文档都是一个键值对(key-value)。

5.1 插入文档

在 MongoDB 中,插入数据使用 insert 操作,最常用的是 insertOneinsertMany

插入单条数据
bash 复制代码
db.mycollection.insertOne({ name: "John", age: 30, city: "New York" })
插入多条数据
bash 复制代码
db.mycollection.insertMany([
    { name: "Alice", age: 25, city: "London" },
    { name: "Bob", age: 27, city: "Paris" }
])

5.2 查询文档

MongoDB 支持丰富的查询功能,你可以根据条件查询文档。

查询所有文档
bash 复制代码
db.mycollection.find()
查询单条数据
bash 复制代码
db.mycollection.findOne({ name: "John" })
查询满足条件的文档
bash 复制代码
db.mycollection.find({ age: { $gt: 20 } })

5.3 更新文档

MongoDB 提供了 updateOneupdateManyreplaceOne 等方法用于更新文档。

更新单条文档
bash 复制代码
db.mycollection.updateOne(
    { name: "John" },
    { $set: { age: 31 } }
)
更新多条文档
bash 复制代码
db.mycollection.updateMany(
    { age: { $gt: 25 } },
    { $set: { city: "Updated City" } }
)

5.4 删除文档

你可以使用 deleteOnedeleteMany 删除文档。

删除单条数据
bash 复制代码
db.mycollection.deleteOne({ name: "John" })
删除多条数据
bash 复制代码
db.mycollection.deleteMany({ age: { $lt: 30 } })

六、常用查询操作符

MongoDB 支持丰富的查询操作符,以下是一些常用的操作符:

  • $eq:等于
  • $ne:不等于
  • $gt:大于
  • $lt:小于
  • $gte:大于等于
  • $lte:小于等于
  • $in:在某个集合中
  • $nin:不在某个集合中
示例:查询年龄大于 25 的用户
bash 复制代码
db.mycollection.find({ age: { $gt: 25 } })

七、索引操作

MongoDB 支持创建索引来提高查询效率。你可以在某个字段上创建索引,类似于关系数据库中的索引。

7.1 创建索引

bash 复制代码
db.mycollection.createIndex({ name: 1 })

上述命令会在 name 字段上创建升序索引。

7.2 查看索引

bash 复制代码
db.mycollection.getIndexes()

7.3 删除索引

bash 复制代码
db.mycollection.dropIndex("name_1")

八、聚合操作

MongoDB 提供了强大的聚合框架,用于对数据进行分组、排序、过滤等操作。

8.1 聚合查询

bash 复制代码
db.mycollection.aggregate([
    { $match: { age: { $gt: 25 } } },  // 过滤
    { $group: { _id: "$city", count: { $sum: 1 } } },  // 分组统计
    { $sort: { count: -1 } }  // 按照计数排序
])

8.2 聚合管道

聚合操作通常是通过管道(pipeline)执行的,每个阶段的输出都可以作为下一个阶段的输入。

九、备份与恢复

MongoDB 提供了 mongodumpmongorestore 工具来备份和恢复数据库。

9.1 备份数据库

bash 复制代码
mongodump --out=/path/to/backup

9.2 恢复数据库

bash 复制代码
mongorestore --dir=/path/to/backup

十、总结

本教程涵盖了 MongoDB 的基本使用操作,包括数据库、集合、文档的增删改查,常用查询操作符,以及如何创建索引和进行聚合操作。MongoDB 提供了灵活的数据存储结构,适用于需要快速开发和高效存储的大数据应用。

随着你对 MongoDB 的深入了解,你可以尝试更多高级功能,如复制集、分片、事务等。如果你是 MongoDB 的初学者,建议通过实践加深理解并使用 MongoDB 的官方文档进行更详细的学习。

更多资源

希望这篇教程能帮助你快速上手 MongoDB!

相关推荐
天天进步一点点6 分钟前
QSqlQuery删除sqlite数据库执行drop数据表报错database table is locked unable to fetch row问题
数据库·oracle·sqlite
音视频工程实战22 分钟前
PromptQL 新手入门与实战指南
数据库·sql·算法
清川渡水34 分钟前
NL2SQL 的正确打开方式:从「AI 猜 SQL」到「置信度闭环」的工程化落地
数据库·人工智能·sql
TDengine (老段)1 小时前
TDengine Go 与 Rust 连接器 — 高性能异步访问
大数据·数据库·物联网·golang·rust·时序数据库·tdengine
东方佑1 小时前
MA-RMSNorm:打破“缩放换智能”的魔咒,大模型归一化的一次范式革命!
数据库·人工智能·计算机视觉
云和恩墨2 小时前
「云帆计划·长沙站」活动成功举办,云和恩墨与紫薇垣和湖南金悦科技分别签约并授牌,本地伙伴生态建设加速
数据库·科技
千维百策6663 小时前
如何管理错误预算:提升服务可靠性与 SLO 达成率的实践经验
服务器·网络·数据库
Y3815326624 小时前
2026 年 7 月,SERP API 调用的稳定性实战:超时、重试、降级
开发语言·数据库·人工智能·php
sugar__salt4 小时前
向量数据库从零到实战:用 Milvus + Zilliz 构建 AI 日记语义检索系统
数据库·人工智能·embedding·milvus·rag·zilliz
Gauss松鼠会4 小时前
Prometheus 实现 openGauss 的指标监控(二)Prometheus 中添加 openGauss指标
网络·数据库·oracle·prometheus·opengauss·经验总结