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的应用场景
  • 初步体验文档存储的优势
相关推荐
圆蛤镇程序猿3 分钟前
【什么是MVCC?】
java·数据库·oracle
开心邮递员5 分钟前
sql server: split 函数;cross apply操作符
数据库·sql
老大白菜6 分钟前
PostgreSQL 内置函数
数据库·postgresql
Damon撇嘴笑6 分钟前
Cause: java.sql.SQLException: sql injection violation, comment not allow异常问题处理
java·数据库·sql
山林竹笋24 分钟前
Java解析PDF数据库设计文档
数据库·pdf
Aimin202240 分钟前
Kali系统(Debian 10.3) 遇到的问题
数据库·mysql·debian
Run Out Of Brain43 分钟前
使用systemd管理MySQL服务器
服务器·数据库·mysql
小怪兽ysl1 小时前
【Oceanbase数据库常用巡检SQL】
数据库·sql·oceanbase
qq_420482631 小时前
飞书机器人告警实现
服务器·数据库·飞书
东方未明01081 小时前
Redis(三)单线程架构介绍
数据库·redis·数据库架构·单线程架构