做asp.net网站参考文献,深圳的网站建设的公司,做视频的模板下载网站,国外做化工产品的网站MongoDB是一种开源文档型数据库#xff0c;它具有高性能#xff0c;高可用性#xff0c;自动扩展性1.文档数据库MongoDB用一个文档来表示一条记录#xff0c;文档的数据结构由键值对组成。MongoDB文档类似于JSON对象#xff0c;字段值可能是文档#xff0c;数组#xff…MongoDB是一种开源文档型数据库它具有高性能高可用性自动扩展性1.文档数据库MongoDB用一个文档来表示一条记录文档的数据结构由键值对组成。MongoDB文档类似于JSON对象字段值可能是文档数组或文档数组。使用文档的优点文档中字段值的数据类型同大多数编程语言中的原生数据类型一致。嵌入式文档和数组减少了连接查询的需求。动态的文档结构支持多态性。2.主要特性高性能MongoDB支持高性能数据存储。特别地支持嵌入式数据模型以减少对数据库系统的I/O利用索引实现快速查询并且嵌入式文档和集合也支持索引丰富的查询语言MongoDB提供了丰富的查询语言以支持读写操作和聚集操作、文本检索、地理信息查询高可用性MongoDB的复制能力被称作复制集(replica set)它提供了自动的故障迁移和数据冗余。一个复制集是一组包含了相同数据的多台MongoDB服务器它提供了冗余性和加强了数据的可用性。横向扩展MongoDB的横向扩展能力是其核心功能的一部分分片的数据分布在服务器集群上。带标签的分片能够引导数据到指定的分片上。支持多存储引擎包括WiredTiger Storage EngineMMAPv1 Storage Engine。此外MongoDB 提供可插拔存储引擎API允许第三方开发者为MongoDB开发存储引擎。3.数据库和集合MongoDB 存储BSON文档例如数据记录在集合中集合在数据库中。3.1数据库在MongoDB 中数据库持有集合。在Mongo shell中选中一个数据库使用如下命令use 例如use myDB创建数据库如果待操作的数据库不存在那么在第一次向MongoDB 存储数据时MongoDB会创建这个数据库。例如使用如下命令操作一个不存在的数据库。use myNewDBdb.myNewCollection1.insert( { x: 1 } )insert()操作创建了数据库myNewDB若集合myNewCollection1也不存在同样地集合myNewCollection1也被创建。3.2集合MongoDB 在集合中存储文档集合类似于关系数据库中的表。创建一个集合如果一个集合不存在使用下面命令时集合会被创建db.myNewCollection2.insert( { x: 1 } )db.myNewCollection3.createIndex( { y: 1 } )insert() 和 createIndex()在集合不存在的情况下会创建集合。显式创建集合MongoDB 提供了db.createCollection()方法来显示地创建一个集合。可以为创建的集合指定参数例如设置集合的大小或者文档的验证规则如果不需要指定这些参数那么没必要显示地创建一个集合。文档验证(3.2版新特性)默认情况下一个集合中的文档不必具有相同的结构 一个集中的文档不需要具有一系列相同的字段并且不同文档中字段的数据类型可以不同。 修改文档结构可以更改集合中的文档结构如添加新字段删除现有字段或将字段值更改为一种新的类型更新文档结构3.3固定集合3.3.1概述固定集合即具有固定大小的集合它支持基于插入顺序的插入和查询这两种高通量操作。固定大小的集合的工作方式类似于循环缓存一旦一个集合被填满待插入的文档会覆盖掉最先插入的文档。3.3.2行为插入顺序固定集合保证了插入顺序因此对于查询操作而言不需要索引的支持就可以返回多个按顺序排列的文档。没有索引的开销固定集合支持更高的插入吞吐量。自动删除最先插入的文档为了给新文档让出存储空间固定集合自动删除最先插入的文档而不需要显示的删除操作。例如集合oplog.rs中存储了副本集操作日志这里副本集使用了固定集合。考虑下面对固定集合可能的操作存储由大容量系统生成的日志信息。在无索引的情况下文档插入固定集合的速度与将日志信息写入文件系统的速度相似。此外先进先出的特性保证了事件的顺序同时管理了存储的使用。在固定集合中缓存少量数据。由于缓存重读而非写你应确保这个集合总在工作集中(例如内存中)或接受一点点写操作因为索引需要写操作。_id 字段索引固定集合含有_id字段此字段索引是默认的。3.3.3限制和建议更新如果你要更新固定集合中的文档创建索引以防止全表扫描。文档大小(3.2版本变更)如果更新或替换操作改变了文档大小则操作失败。删除文档不能删除固定集合中的文档可使用drop() 命令删除整个固定集合并新建之。分片固定集合不允许分片。查询效率使用自然排序可高效地检索最新插入的元素。这是(有点)像追踪一个日志文件。聚集操作符$out不能使用聚集管道操作符$out将结果写入固定集合3.3.4过程创建固定集合在mongo shel中使用db.createCollection()方法创建固定集合创建固定集合的时候要指定集合的字节大小MongoDB将会提前为所创建的固定集合分配存储空间。固定集合的字节大小包含了内部使用的空间大小。db.createCollection( log