# MongoDB **Repository Path**: anselyuki/mongo-db ## Basic Information - **Project Name**: MongoDB - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-05-08 - **Last Updated**: 2021-06-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MongoDB学习笔记 ## 介绍 MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 ## 软件架构 NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL"。 ### 什么是NoSQL? NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。 NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。 ### 为什么使用NoSQL ? 今天我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据。用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。我们如果要对这些用户数据进行挖掘,那SQL数据库已经不适合这些应用了, NoSQL 数据库的发展却能很好的处理这些大的数据。 ### NoSQL的优点/缺点 优点: - \- 高可扩展性 - \- 分布式计算 - \- 低成本 - \- 架构的灵活性,半结构化数据 - \- 没有复杂的关系 缺点: - \- 没有标准化 - \- 有限的查询功能(到目前为止) - \- 最终一致是不直观的程序 ### MongoDB主要特点 - MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。 - 你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。 - 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。 - 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。 - Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。 - MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。 - Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。 - Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。 - Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。 - GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。 - MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。 - MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。 - MongoDB安装简单。 ## 安装教程 您可以使用git获取本仓库 ```shell git clone https://gitee.com/anselyuki/mongo-db ``` 或者在代码详情页下载zip包 ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request