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: "[email protected]",
            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的应用场景
  • 初步体验文档存储的优势
相关推荐
信徒_26 分钟前
kafka 中的 rebalance
数据库·分布式·kafka
轨迹H36 分钟前
sql-labs less-1-5wp
数据库·sql·网络安全·渗透测试·less·web漏洞
wd 671 小时前
sql注入拿shell
android·数据库·sql
lucky登1 小时前
Redis项目_黑马点评
数据库·redis·缓存
数巨小码人1 小时前
PostgreSQL存储管理体系结构学习笔记2
数据库·postgresql
安防视频中间件/视频资源汇聚平台2 小时前
svmspro如何切换数据库
数据库·mysql·sqlite·达梦·人大金仓·瀚高·svmspro
月熊2 小时前
MySQL小练习
数据库·mysql
Brian_Lucky2 小时前
MongoDB 数据导出与导入实战指南(附完整命令)
数据库·mongodb
XZ-0700012 小时前
MySQL(第3周)-database命令
数据库·mysql
TechStack 创行者2 小时前
基于Alpine构建MySQL 10.11.11镜像的完整教程
运维·数据库·mysql·docker