10天掌握MongoDB 2012翻新完整版
### MongoDB 快速入门知识点详解 #### 一、MongoDB 概述 - **定义**: - MongoDB 是一种开源的、文档型的、非关系型数据库(NoSQL),它采用了JSON-BSON(Binary JSON)格式来存储数据,提供了一个高性能、易扩展的数据存储解决方案。 - **发展历程**: - MongoDB 的发展始于2007年,由10gen(现更名为MongoDB Inc.)公司创建。随着大数据和互联网应用的需求增加,MongoDB 因其灵活性和扩展性而迅速获得了广泛的应用。 - **主要特性**: - **文档存储**:以文档形式存储数据,每个文档都是一个JSON对象。 - **灵活的模式**:没有固定的表结构,同一集合中的不同文档可以拥有不同的字段。 - **高性能**:内存映射文件机制使得读写操作极为快速。 - **易于扩展**:支持自动分片和副本集,便于水平扩展。 - **丰富的查询语言**:支持复杂的查询表达式,包括排序、过滤等功能。 #### 二、NoSQL 运动概述 - **背景**: - 随着互联网的发展,传统的关系型数据库难以满足大规模数据存储和处理的需求,因此NoSQL(Not Only SQL)运动应运而生。 - **核心理念**: - 强调使用非关系型的数据存储方式,以适应现代Web应用的需求,如高并发、高扩展性等。 - **优缺点**: - **优点**:高并发读写、海量数据存储、高可扩展性和高可用性。 - **缺点**:缺乏事务一致性、读写实时性以及不支持复杂查询。 #### 三、NoSQL 数据库类型 - **Key-Value 存储**: - 特点:以键值对的形式存储数据,适用于简单的数据存储场景。 - 示例产品:Tokyo Cabinet/Tyrant、Redis、Voldemort、Oracle BDB。 - **列式数据库**: - 特点:按列存储数据,适合大数据分析场景。 - 示例产品:Cassandra、HBase、Riak。 - **文档型数据库**: - 特点:以文档形式存储数据,支持嵌套结构。 - 示例产品:CouchDB、MongoDB。 - **图数据库**: - 特点:以节点、边和属性的形式表示数据之间的关系。 - 示例产品:Neo4J、InfoGrid、InfiniteGraph。 #### 四、MongoDB 架构介绍 - **数据模型**: - **数据库**:MongoDB 中的顶级容器,类似于关系型数据库中的数据库。 - **集合**:文档的容器,类似于关系型数据库中的表。 - **文档**:单个记录,以BSON格式存储,类似于关系型数据库中的行。 - **命名规范**: - **数据库**:必须是UTF-8字符串,不能是空字符串,不能包含特殊字符,长度不超过64字节。 - **集合**:必须是UTF-8字符串,不能是空字符串,不能包含特定字符,不能以system.开头。 - **文档**:同集合,但不能以_开头。 #### 五、MongoDB 安装与配置 - **版本选择**: - 版本命名规则:`x.y.z`,其中`y`为奇数表示开发版,`y`为偶数表示稳定版。 - 对于64位机器,建议使用64位版本以获得更好的性能。 - **下载与安装**: - 下载地址:[MongoDB 官方下载](http://www.mongodb.org/downloads)。 - 直接运行或作为Windows服务安装,具体步骤参考官方文档。 - **运行Shell**: - 打开命令行,执行相应路径下的`mongod.exe`启动服务。 #### 六、总结 - MongoDB 作为一种非关系型数据库,因其高性能、高扩展性等特点,在大数据时代受到了广泛的关注和应用。 - 了解NoSQL 运动及其不同类型的数据库对于选择合适的数据存储方案至关重要。 - 掌握MongoDB 的基本概念、架构及安装方法可以帮助开发者快速上手,并在实际项目中发挥其优势。
剩余140页未读,继续阅读
- allen_jinjie2013-06-19类似讲义的东西,不太适合初学者从整体上把握mongodb,但是还是一个不错的入门教材。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip
- (源码)基于计算机系统原理与Arduino技术的学习平台.zip
- (源码)基于SSM框架的大学消息通知系统服务端.zip
- (源码)基于Java Servlet的学生信息管理系统.zip
- (源码)基于Qt和AVR的FestosMechatronics系统终端.zip