茂名网站建设方案外包,赶集网免费发布信息,网页制作素材可爱图片,北京专业网站建设前言 相信很多同学对MongoDB这个非关系型数据库都应该挺熟悉的#xff0c;在一些高性能、动态扩缩容、高可用、海量数据存储、数据价值较低、高扩展的业务场景下MongoDB可能是我们的首选#xff0c;因为MongoDB通常能让我们以更低的成本解决问题#xff08;包括学习、开发、…前言 相信很多同学对MongoDB这个非关系型数据库都应该挺熟悉的在一些高性能、动态扩缩容、高可用、海量数据存储、数据价值较低、高扩展的业务场景下MongoDB可能是我们的首选因为MongoDB通常能让我们以更低的成本解决问题包括学习、开发、运维等成本。接下来的一个月博主将会从基础出发编写一个关于使用MongoDB从入门到实战的相关教程该项目后端使用的是.NET7、前端页面使用Blazor、使用MongoDB存储数据更多相关内容大家可以看目录中的MongoDB从入门到实战的相关教程。该系列教程可作为.NET Core入门项目进行学习感兴趣的小伙伴可以关注博主和我一起学习共同进步。 MongoDB从入门到实战的相关教程
MongoDB从入门到实战之MongoDB简介 YyFlight.ToDoList项目源码地址 GitHub地址GitHub - YSGStudyHards/YyFlight.ToDoList: 【.NET8 MongoDB 待办清单系统】.NET8 MongoDB从入门到实战基础教程该项目后端使用的是.NET8、前端页面使用Blazor、使用MongoDB存储数据更多相关内容大家可以看目录中的MongoDB从入门到实战的相关教程。该系列教程可作为.NET Core入门项目进行学习感兴趣的小伙伴可以关注博主和我一起学习共同进步。 MongoDB是什么?
MongoDB 是一个基于分布式文件存储的数据库。由 C 语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品是非关系数据库当中功能最丰富最像关系数据库的。它支持的数据结构非常松散是类似Json的Bson格式因此可以存储比较复杂的数据类型。 MongoDB 最大的特点是它支持的查询语言非常强大其语法有点类似于面向对象的查询语言几乎可以实现类似关系数据库单表查询的绝大部分功能而且还支持对数据建立索引。并且MongoDB-4.2版本开始已经支持分布式事务功能。 简而言之的话就是MongoDB是一个文档型的NoSQL数据库用于构建高并发、高可用和高扩展的互联网应用程序。 什么是Bson格式?
Bson是一种类Json的一种二进制形式的存储格式简称Binary Json它和Json一样支持内嵌的文档对象和数组对象但是Bson有Json没有的一些数据类型如Date和BinData类型。
Bson可以做为网络数据交换的一种存储形式这个有点类似于Google的Protocol Buffer但是Bson是一种schema-less的存储形式它的优点是灵活性高但它的缺点是空间利用率不是很理想Bson有三个特点轻量性、可遍历性、高效性
{“hello:world} 这是一个Bson的例子其中hello是key name它一般是cstring类型字节表示是cstring:: (byte*) /x00 ,其中*表示零个或多个byte字节/x00表示结束符;后面的world是value值它的类型一般是string,double,array,binarydata等类型。 MongoDB的优势
1.高性能
MongoDB提供高性能的数据持久性。对嵌入式数据模型的支持减少了数据库系统上的IO活动。
索引支持更快的查询并且包含嵌入式文档和数组的键。
文本索引解决搜索的需求TTL索引解决历史数据自动过期的需求地理位置索引可用于构建各种 O2O 应用
2.高可用
MongoDB的复制工具称为副本集reolica set它包含提供自动故障转移和数据冗余。
3.海量数据存储
内置GridFS支持海量存储。
4.丰富的查询支持
MongoDB支持丰富的查询语言支持读写CRUD操作、比如数据聚合、文本搜索、地理空间查询等。
5.支持多种编程语言
MongoDB支持多种流行编程语言如CCC# / .NETErlangHaskellJavaPHPPythonGo等多种语言。
6、其他特点
如可拓展性强模式自由、动态模式、灵活的文档模型等。 MongoDB的劣势
单机可靠性比较差。在集群分片中的数据分布不均匀。磁盘空间占用比较大。大数据量持续插入写入性能有较大波动。 MongoDB业务应用场景
四高场景应对
传统的关系型数据库(如MySQLMS SQL Server)在数据操作的四高需求以及应对Web2.0的网站需求面前显得力不从心而MongoDB可更好的应对四高需求
High performance(高性能)对数据库高并发读写的需求。Huge Storage(海量存储)对海量数据的高效率存储和访问的需求。High Scalability High Availability(高可扩展性和高可用性)对数据库的高可扩展性和高可用性的需求。
具体应用场景
游戏应用使用MongoDB作为游戏服务器的数据库存储用户信息。用户的游戏装备、积分等直接以内嵌文档的形式存储方便进行查询与更新。物流应用使用MongoDB存储订单信息订单状态在运送过程中会不断更新以MongoDB内嵌数组的形式来存储一次查询就能将订单所有的变更读取出来方便快捷且一目了然。社交应用使用MongoDB存储用户信息以及用户发表的朋友圈信息通过地理位置索引实现附近的人、地点等功能。并且MongoDB非常适合用来存储聊天记录因为它提供了非常丰富的查询并在写入和读取方面都相对较快。视频直播使用MongoDB存储用户信息、礼物信息等。大数据应用使用MongoDB作为大数据的云存储系统随时进行数据提取分析掌握行业动态。
这些应用场景中数据操作方面的共同特点是
对于下面的这些数据我们更适合使用 MongoDB来实现数据的存储
数据量大。读写操作频繁。价值较低的数据对事务性要求不高。 MongoDB语言支持 MongoDB有官方的驱动如下
CCC# / .NETGoErlangHaskellJavaJavaScriptLispnode.JSPerlPHPPythonRubyScala MongoDB发展史
MongoDB 最初由一个名为 10gen 的组织在 2007 年开发的并在 2009 年 2 月发布了 MongoDB 1.0 版本其中提供了大部分基本的查询功能。2009 年 12 月发布了 MongoDB 1.2 版本其中引入了 map-reduce一种编程模型用于大规模数据集大于 1TB的并行运算让 MongoDB 拥有了支持大规模数据处理的能力。2010 年 3 月发布了 MongoDB 1.4 版本该版本中引入了创建后台索引的功能。2010 年 8 月发布了 MongoDB 1.6 版本该版本种引入了一些主要特性比如用于水平伸缩的分片、具备自动故障转移能力的副本集以及对 IPv6 的支持。2012 年 8 月发布了 MongoDB 2.2 版本该版本引入了聚合管道功能可以将多个数据处理步骤组合成一个操作链。2013 年 3 月发布了 MongoDB 2.4 版本并在 Mongo Shell一个与 MongoDB 交互的组件中引入了文本搜索和谷歌的 V8 JS 引擎等增强功能。另外还发布了 MongoDB 的企业版企业版中另外提供了监控和安全集成等附加功能。2015 年 3 月发布了 MongoDB 3.0 版本该版本中引入了新的 WiredTiger 存储引擎、可插拔存储引擎 API 并增加了 50 个副本集限制和安全改进。同年晚些时候又发布了 MongoDB 3.2 版本该版本增加了文档验证、部分索引的功能。2017 年 11 月发布了 MongoDB 3.6 版本该版本为多集合连接查询、变更流和使用 JSON 模式进行文档验证提供了更好的支持。MongoDB 3.6 是微软 Azure CosmosDB截止到 2020 年 8 月能够支持的最新版本。2018 年 6 月发布了 MongoDB 4.0 版本该版本提供了跨文档处理事务的能力。2019 年 8 月发布了 MongoDB 4.2 版本该版本中引入分布式事务处理的能力。 参考文章
Start Developing with MongoDB — MongoDB Drivers