博客
关于我
MongoDB快速上手
阅读量:608 次
发布时间:2019-03-12

本文共 2441 字,大约阅读时间需要 8 分钟。

MongoDB学习笔记


1. MongoDB概念

1.1 业务应用场景

MongoDB适用于提供高性能、高可用性和支持扩展性的场景,常见应用包括:

  • 社交网络:存储用户信息、朋友圈、位置数据等。
  • 游戏:存储用户数据、装备、积分等。
  • 物流:存储订单信息、物流状态等。
  • 物联网:存储设备信息、日志数据。

MongoDB的优势在于:

  • 数据量大时表现优异。
  • 写入操作频繁,可应对高并发读写。
  • 尽管事务性要求不高,仍能满足大部分应用需求。

1.2 MongoDB简介

MongoDB是一个开源、高性能、无模式的文档型数据库,支持灵活的数据结构(BSON格式)和高扩展性的架构。

  • 文档型结构:存储为类似JSON的文档,支持嵌入式数据、数组等。
  • 它像关系型数据库一样直观,但无需固定模式,灵活性高。

1.3 数据模型

MongoDB的最小存储单位是文档(document),类似于JSON对象:

  • 字段名称为字符串,值可以是各种数据类型(包括嵌套文档和数组)。
  • MongoDB支持多种数据类型,如整数、字符串、日期、Binary Data、 Regex等。

1.4 MongoDB特点

  • 高性能:支持复杂查询和高并发操作。
  • 高可用性:支持副本集(replica set)实现数据冗余和自动故障转移。
  • 高可扩展性:支持分片(sharding),可水平扩展。
  • 灵活的查询:支持文本搜索、地理位置查询等。
  • 无模式:无需固定数据模式,便于快速迭代。

2. 单机部署配置

2.1 Windows安装

  • 下载安装包

    • 从MongoDB官网下载对应版本的Windows安装包。
    • 选择合适的版本(如31位或64位),根据上述提示下载。
  • 解压与配置

    • 将压缩包解压到指定目录(如 data/db)。
    • 启动MongoDB,命令行启动或通过配置文件。
    • 配置文件中注意避免转义字符问题,避免使用Tab分隔字段。
  • 使用Shell命令

    • 登录MongoDB:mongo --host localhost --port 27017
    • 查看数据库:show databases
    • 退出:exit
  • 使用Compass

    • 下载并安装MongoDB Compass客户端,连接本地或远程站点。
  • 2.2 Linux安装

  • 下载安装包

    • 下载对应的Linux版本安装包。
  • 解压并配置

    • 解压并将目录移动到指定位置(如 /usr/local/mongodb)。
    • 创建数据和日志目录,配置配置文件。
    • 启动MongoDB完成配置。
  • 使用命令和Compass

    • 使用命令:mongo --port 27017
    • 查看数据库和索引:show collectionsdb.getIndexes()
    • 通过Compass图形化界面管理和查询数据。
  • 停止服务

    • 快速关闭:kill -2 PID
    • 标准关闭:db.shutdownServer()

  • 3. 基本操作命令

    3.1 数据库操作

    • 创建数据库use articledb
    • 删除数据库db.dropDatabase()

    3.2 集合操作

    • 创建集合db.createCollection("mycollection")
    • 删除集合db.collection.drop()

    3.3 文档操作

    • 插入文档db.collection.insert()
    • 批量插入db.collection.insertMany()
    • 查询文档db.collection.find()
    • 分页查询db.collection.find().skip(N).limit(N)
    • 排序查询db.collection.find().sort({字段: 1})
    • 删除文档db.collection.remove({条件})
    • 更新文档db.collection.update({条件}, 更新操作)

    3.4 查询优化

    • 索引支持:创建和管理索引,使用解释计划(Explain Plan)查看查询性能。
    • 复杂查询:使用正则表达式、集合操作符($and、$or等)进行高级查询。

    4. 索引管理

    4.1 索引概述

    • 索引显著提升查询效率,通过B-Tree结构实现高效查找。
    • 默认创建 _id 索引,禁止删除。

    4.2 索引类型

    • 单字段索引:对单个字段进行升序或降序排序。
    • 复合索引:多字段组合索引,提升复杂查询效率。
    • 地理空间索引:支持地理位置查询。
    • 文本索引:支持文本搜索。
    • 哈希索引:用于分片操作。

    4.3 索引管理

    • 创建索引db.collection.createIndex({字段: 1})
    • 删除索引db.collection.dropIndex("索引名")
    • 查看索引db.collection.getIndexes()

    4.4 查询解释

    • 使用 explain() 命令分析查询性能,查看是否基于索引查询。
    • 提高查询效率的关键:合理设计索引和查询约束条件。

    5. 文章评论开发

    5.1 项目搭建

    • 依赖管理:在项目POM中添加Spring Boot和Spring Data MongoDB依赖。
    • 配置数据库:在application.yml中配置MongoDB地址和数据库名。

    5.2 实体类设计

    • 实体类注解:使用@Document@Indexed@CompoundIndex等注解定义索引。
    • 字段映射:确保字段名与数据库字段一致,避免冲突。

    5.3 业务实现

    • 保存评论:使用 @ür股份持久化框架或MongoTemplate直接操作。
    • 查询评论:通过Pageable进行分页查询。
    • 点赞功能:使用MongoTemplate实现局部更新,提升性能。

    6. 总结

    MongoDB适合处理高性能、高扩展性和大数据存储的应用场景,学习过程中需熟练掌握数据模式、索引管理和CRUD操作。通过Spring Data MongoDB快速搭建业务模块,优化点赞功能等细节能提高开发效率,为后续复杂应用奠定基础。

    转载地址:http://mjhxz.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现检查给定字符串是否在camelCase中算法(附完整源码)
    查看>>
    Objective-C实现检查给定的字符串是否在kebabcase中算法(附完整源码)
    查看>>
    Objective-C实现欧几里得距离(附完整源码)
    查看>>
    Objective-C实现欧拉路径和欧拉回路算法(附完整源码)
    查看>>
    Objective-C实现水波纹显示效果(附完整源码)
    查看>>
    Objective-C实现求a的逆元x(附完整源码)
    查看>>
    Objective-C实现求两点间距离(附完整源码)
    查看>>
    Objective-C实现求众数(附完整源码)
    查看>>
    Objective-C实现求曲线在某点的导数(附完整源码)
    查看>>
    Objective-C实现求最大公约数 (GCD)的算法(附完整源码)
    查看>>
    Objective-C实现汉密尔顿循环算法(附完整源码)
    查看>>
    Objective-C实现洗牌移位密码算法(附完整源码)
    查看>>
    Objective-C实现测试信用卡号码有效性credit card validator的算法(附完整源码)
    查看>>
    Objective-C实现深度优先搜索递归算法(附完整源码)
    查看>>
    Objective-C实现牛顿下山法(附完整源码)
    查看>>
    Objective-C实现牛顿插值法(附完整源码)
    查看>>
    Objective-C实现牛顿法算法(附完整源码)
    查看>>
    Objective-C实现状态模式(附完整源码)
    查看>>
    Objective-C实现狄克斯特拉算法(附完整源码)
    查看>>
    Objective-C实现猜数字算法(附完整源码)
    查看>>