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的应用场景
  • 初步体验文档存储的优势
相关推荐
HardCodeV31 分钟前
NestJS
数据库·oracle
花好月圆春祺夏安1 小时前
基于odoo17的设计模式详解---备忘模式
数据库·设计模式
有想法的py工程师1 小时前
PostgreSQL 查询库中所有表占用磁盘大小、表大小
数据库·postgresql
R_AirMan3 小时前
深入浅出Redis:一文掌握Redis底层数据结构与实现原理
java·数据结构·数据库·redis
Hello.Reader3 小时前
RedisJSON 内存占用剖析与调优
数据库·redis·缓存
wkj0014 小时前
php 如何通过mysqli操作数据库?
android·数据库·php
九皇叔叔5 小时前
【9】PostgreSQL 之 vacuum 死元组清理
数据库·postgresql
风雅的远行者6 小时前
mysql互为主从失效,重新同步
数据库·mysql
宇钶宇夕7 小时前
S7-1200 系列 PLC 中 SCL 语言的 PEEK 和 POKE 指令使用详解
运维·服务器·数据库·程序人生·自动化
绿蚁新亭7 小时前
Spring的事务控制——学习历程
数据库·学习·spring