MONGODB学习总结入门篇

上传人:碎****木 文档编号:220860812 上传时间:2021-12-09 格式:DOCX 页数:12 大小:220.09KB
返回 下载 相关 举报
MONGODB学习总结入门篇_第1页
第1页 / 共12页
MONGODB学习总结入门篇_第2页
第2页 / 共12页
MONGODB学习总结入门篇_第3页
第3页 / 共12页
亲,该文档总共12页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《MONGODB学习总结入门篇》由会员分享,可在线阅读,更多相关《MONGODB学习总结入门篇(12页珍藏版)》请在金锄头文库上搜索。

1、MongoDB1 Mongodb 根本概念1.1 简介What is MongoDB?MongoDB 是一个基于分布式文件存储的数据库。由C+语言编写。旨在为 WEB 应用供给可扩展的高性能数据存储解决方案。MongoDB 是一个介于 关系数据库 和非关系数据库之间的产品, 是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据构造格外松散, 是类似 json 的 bjson 格式,因此可以存储比较简单的数据类型。Mongo 最大的特点是他支持的查询语言格外强大,其语法有点类似于面对对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大局部功能,而且还支持对数据建立索引。MongoDB

2、 很像MySQL,document 对应 MySQL 的 row,collection 对应MySQL 的 table。1.2 特点它的特点是高性能、易部署、易使用,存储数据格外便利。主要功能特性有:*面对集合存储,易存储对象类型的数据。*模式自由。*支持动态查询。*支持完全索引,包含内部对象。*支持查询。*支持复制和故障恢复。*使用高效的二进制数据存储,包括大型对象如视频等。*自动处理碎片,以支持云计算层次的扩展性。*支持 RUBY ,PYTHON ,JAVA ,C+,PHP,C# 等多种语言。*文件存储格式为 BSON 一种 JSON 的扩展。*可通过网络访问。1.3 使用原理所谓“面对集

3、合” Collection-Oriented ,意思是数据被 分组存储在数据集中, 被称为一个集合 Collection) 。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似 关系型数据库 RDBMS 里的表table , 不同的是它不需要定义任何模式 schema) 。模式自由 schema-free) ,意味着对于存储在 mongodb 数据库中的文件,我们不需要知道它的任何构造定义。假设需要的话,你完全可以把不同构造的文件存储在同一个数据库里。 存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值那么可以是各种简单的文件

4、类型。我们称这种存储形式为BSONBinary Serialized dOcument Format。推举 64 位系统。参考官方API(建议英文)。2 Window 下 Mongodb 操作2.1 下载与解压官方网站: :/ mongodb.org/downloads。下载对于版本,解压并抽取相关的 bin 名目到 C:MongoDB 下这个任意选择。在启动 MongoDB 之前,我们必需新建一个存放 mongoDB 数据和日志的名目。数据库名目:C:MongoDBdatadb,日志名目:C:MongoDBdata。2.2 运行效劳端翻开 CMD 窗口,进入到 C:MongoDBbin 名目

5、下,运行效劳端 mongod.exe。C:cd C:MongoDBbinC:MongoDBbinmongod.exe -dbpath=C:MongoDBdatadb -directoryperdb-logpath=C:MongoDBdatalogs -logappend注:日志文件为 C:MongoDBdatalogs,以及添加方式记录追加。数据名目为 C:MongoDBdatadb,并且每个数据库将储存在一个单独的名目-directoryperdb。效劳端要始终运行。Ctrl+C 可中断。/ 例:创立名为 MongoDB_DaShu 的效劳mongod -install -serviceNa

6、me MongoDB_DaShu-serviceDisplayNameMongoDB_LBJ -logpath c:MongoDBdata -dbpath c:MongoDBdatadirectoryperdb2.3 运行客户端再翻开一个 CMD 窗口,进入到 C:MongoDBbin 名目下,运行客户端 mongo.exe 来登录MongoDB。要保持效劳端 mongod.exe 的窗口不关闭2.4 测试操作MongoDB 使用 GridFS 来储存大文件。每个 BSON 对象大小不能超过 4MB。字段名限制:不能以“$”开头;不能包含“.”;“_id”是系统保存的字段,但用户可以自己储存唯

7、一性的数据在字段中。MongoDB 为每个数据库安排一系列文件。每个数据文件都会被预安排一个大小,第一个文件名字为“.0”,大小为 64MB,其次个文件“.1”为 128MB,依此类推,文件大小上限为 2GB。MongoDB 没有新建数据库或者 collection 的命令,只要进展 insert 或其它操作,MongoDB就会自动帮你建立数据库和 collection。当查询一个不存在的 collection 时也不会出错,Mongo会认为那是一个空的 collection。一个对象被插入到数据库中时,假设它没有ID,会自动生成一个“_id”字段,为24 位16 进制数。MongoDB 命令

8、行客户端的脚本语法有些类似MySQL 的: show dbs use memo/ 列出全部数据库/ 使用数据库 memo。即使这个数据库不存在也可以执行,但该数据库不会马上被新建,要等到执行了insert 等的操作时,才会建立这个数据库。 show collections / 列出当前数据库的 collections db/ 显示当前数据库 show users/ 列出用户更多语法,查看 help新建数据库与数据集合:插入数据:插入数据的方式有很丰富查询数据:MongoDB 的查询语法很强大,类似于SQL 的条件查询。例如,很多SQL 可以做的, 它都可以做:db.foo.find()/ se

9、lect * from foodb.foo.find().limit(10)/ select * from foo limit 10 db.foo.find().sort(x:1)/ select * from foo order by x asc db.foo.find().sort(x:1).skip(5).limit(10)/ select * from foo order by x asc limit 5, 10 db.foo.find(x:10)/ select * from foo where x = 10 db.foo.find(x: $lt:10)/ select * from

10、 foo where x <= 10 db.foo.find(, y:true)/ select y from foo一些 SQL 不能做的,MongoDB 也可以做:db.foo.find(“address.city“:“gz“)/ 搜寻嵌套文档address 中city 值为gz 的记录db.foo.find(likes:“math“)/ 搜寻数组db.foo.ensureIndex(“address.city“:1)/ 在嵌套文档的字段上建索引更新数据:db.foo.update(,)更新对象,第一个参数是查询对象,其次个是替代的,可以在其次个对象里指定更新哪些字段,要使用$set

11、。删除条件查询:删除数据集合表:删除当前数据库:db.foo.remove()是用来删除数据,只删除匹配的对象索引:db.foo.ensureIndex(productid:1)/ 在 productid 上建立一般索引db.foo.ensureIndex(district:1, plate:1)/ 多字段索引db.foo.ensureIndex(productid:1, unique:true) / 唯一索引总的来说,使用 mongodb 可以满足常见的增删改差,但是不能完成简单的跨表级联查询,mongodb 努力使数据变得简洁紧凑。2.5 备份与恢复二进制数据格式,常用于备份、复原。Mon

12、godb 的备份工具 mongodump:事例:以下图把备份数据库test 中全部的数据集合表MongoDB 的数据恢复工具 mongorestore:事例:恢复数据库test 中的表t002 的数据2.6 数据导出,导入json 或 csv 格式,每次一个collection数据导出:数据导入:2.7 平安与认证use test2/ 选择数据库test2db.addUser(“username“, “password“); db.addUser(“username“, “password“, true);/ 一般权限,可读写/ 只可读,不行写db.system.users.remove(us

13、er: “username/”/ 删)除; 用户3 Mongodb 争辩性学习3.1 Mongodb 应用方案优化Mongodb 系统承受 Auto-Sharding 算法存在着数据在各个节点上安排不均匀现象,这就是CPU 利用率过高的缘由,直接影响了系统性能。这里提出Mongodb 在大数据量状况下CPU 占有率过高的解决方法Mongodb 分片优化。Mongodb 中的分片机制供给如下功能:l 当数据量和负载个数发生变化时,分片机制可以自动平衡负载和数据分布的变化l 分片机制可以机敏的添加新的硬件设备类满足数据的需求l 拓展性强,最大可以扩展到 1000 个节点l 消灭故障时,利用shar

14、ding 可以实现自动故障转移。Auto-Sharding 架构图如下:Sharding 分片架构图sharding1sharding2sharding2Mongodb Mongodb MongodbMongodb Mongodb MongodbMongodb Mongodb MongodbReplica SetMongod1Mongod2 MongodNMongos1Mongos2MongoNClient说明:l Client:客户端恳求l Sharding:分片即存储实际数据的分片,每个Shard 可以是一个mongod 实例,也可以是一组mongod 实例构成的Replica Set。为了实现每个 Shard 内部的auto-failover,MongoDB 官方建议每个Shard为一组Replica Set。l Mongos:路由进程这是一个前端路由,客户端由此接入,然后询问 Config Servers 需要到哪个 Shard 上查询或保存记录,再连接相应的Shard 进展操作,最终将结果返回给客户端。客户端只需要将原本发给 mongod 的查询或更新恳求原封不动地发给 Routing Process,而不必关心所操

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号