Skip to content

MongoDB 简介

MongoDB 是一个开源、面向文档的 NoSQL 数据库,用 C++ 编写。与传统关系型数据库不同,MongoDB 使用类似 JSON 的 BSON(Binary JSON)格式存储数据,具有灵活的动态模式。

与关系型数据库对比

对比关系型数据库MongoDB
数据模型表(Table) → 行(Row)集合(Collection) → 文档(Document)
Schema预定义、严格动态、灵活
扩展方式垂直扩展为主水平扩展(分片)
事务强 ACIDv4.0+ 多文档 ACID

核心特性

  • 文档模型:数据以嵌套文档和数组的形式组织,贴近面向对象编程
  • 高可用:通过副本集(Replica Set)实现自动故障转移
  • 水平扩展:通过分片(Sharding)将数据分布到多台机器
  • 丰富的查询语言:支持增删改查、聚合管道、全文搜索、地理空间查询
  • 灵活的索引:支持单字段、复合、文本、地理空间等多种索引类型

基本概念

数据库层级

MongoDB 实例
└── 数据库(Database)
    └── 集合(Collection)
        └── 文档(Document)
层级说明
Database一个实例可包含多个数据库,每个数据库有独立的权限和文件
Collection类似 SQL 中的表,无需预定义 Schema,文档可具有不同字段
DocumentBSON 格式的键值对,支持嵌套文档和数组

基本操作

shell
# 连接
mongosh

# 查看所有数据库
show dbs

# 切换 / 创建数据库(使用时自动创建)
use mydb

# 查看当前数据库的集合
show collections

参考