MongoDB基础

第1章:MongoDB基础

1.1 NoSQL与MongoDB简介

1.1.1 NoSQL数据库发展历程

  • 传统关系型数据库的局限性

  • Web 2.0时代的数据存储需求

  • NoSQL数据库的兴起

  • MySQL与MongoDB的比较

    • 优点:
      • 高性能
      • 可扩展
      • 灵活的文档模型
    • 缺点:
      • 无事务支持
      • 无join支持
      • 数据一致性问题
    • 实时web应用
    • 分布式数据存储
    • 大数据分析
    • 数据采集与分析

1.1.2 文档型数据库概念

  • 文档的灵活性
  • 无模式设计
  • JSON/BSON数据格式

1.1.3 MongoDB的特点与优势

  1. 灵活的文档模型
javascript 复制代码
// 动态模式示例
db.users.insertMany([
    {
        name: "张三",
        age: 30,
        contacts: {
            email: "zhangsan@example.com",
            phone: "13800138000"
        }
    },
    {
        name: "李四",
        age: 25,
        hobbies: ["篮球", "编程"]
    }
])
  1. 高性能
  • 索引支持
  • 内存映射存储引擎
  • 横向扩展能力
  1. 丰富的查询语言
javascript 复制代码
// 复杂查询示例
db.products.find({
    $and: [
        {price: {$gte: 100, $lte: 500}},
        {category: "电子产品"},
        {stock: {$gt: 0}}
    ]
})

1.1.4 应用场景分析

  • 实时分析系统
  • 内容管理
  • 物联网数据存储
  • 移动应用后端
  • 日志存储

1.2 安装与配置

1.2.1 多平台安装

bash 复制代码
# Ubuntu安装
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org

# MacOS安装
brew tap mongodb/brew
brew install mongodb-community

# Windows安装
# 下载官方安装包,配置环境变量

1.2.2 配置文件详解

yaml 复制代码
# mongodb.conf 配置示例
systemLog:
   destination: file
   path: /var/log/mongodb/mongod.log
   logAppend: true

storage:
   dbPath: /var/lib/mongodb
   journal:
      enabled: true

net:
   port: 27017
   bindIp: 0.0.0.0

security:
   authorization: enabled

1.3 基本概念

1.3.1 数据模型

  1. 数据库(Database)
  2. 集合(Collection)
  3. 文档(Document)
  4. 字段(Field)
  5. ObjectId
javascript 复制代码
// 数据模型示例
{
    _id: ObjectId("5f8d3a1c9d3b2a1b1c9d3b2a"),  // 唯一标识符
    name: "产品名称",
    price: 99.99,
    tags: ["电子", "数码"],
    specs: {
        color: "black",
        size: "large"
    }
}

1.3.2 ObjectId详解

javascript 复制代码
// ObjectId生成机制
let id = ObjectId()
id.getTimestamp()  // 获取创建时间
id.str  // 字符串表示

实践练习

  1. 安装MongoDB
  2. 配置基本连接
  3. 创建第一个数据库
  4. 插入不同结构的文档
  5. 体验动态模式的灵活性

学习总结

  • 理解NoSQL与文档型数据库概念
  • 掌握MongoDB安装与基本配置
  • 了解数据模型的灵活性
  • 认识MongoDB的应用场景
  • 初步体验文档存储的优势
相关推荐
StarRocks_labs16 分钟前
告别 Hadoop,拥抱 StarRocks!政采云数据平台升级之路
大数据·数据库·starrocks·hadoop·存算分离
骇客野人7 小时前
mysql笛卡尔积怎么形成的怎么避免笛卡尔积
数据库·mysql
m0_564264188 小时前
IDEA DEBUG调试时如何获取 MyBatis-Plus 动态拼接的 SQL?
java·数据库·spring boot·sql·mybatis·debug·mybatis-plus
隐语SecretFlow9 小时前
隐语SecreFlow SCQL 1.0.0b1 发布:更完善的 SQL 支持与更高效的隐私查询引擎
数据库·sql
ttghgfhhjxkl9 小时前
文档搜索引擎搜索模块的索引更新策略:实时增量与全量重建设计
数据库·搜索引擎
老华带你飞9 小时前
机器人信息|基于Springboot的机器人门户展示系统设计与实现(源码+数据库+文档)
java·数据库·spring boot·机器人·论文·毕设·机器人门户展示系统
StarRocks_labs9 小时前
StarRocks 在 Cisco Webex 的探索与实践
数据库·starrocks·json·存算分离·olap 技术栈
notion20259 小时前
Adobe Lightroom Classic下载与安装教程(附安装包) 2025最新版详细图文安装教程
java·数据库·其他·adobe
楚枫默寒10 小时前
mongodb备份脚本(单机+副本集)
数据库
小蒜学长11 小时前
springboot酒店客房管理系统设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端