狠狠撸

狠狠撸Share a Scribd company logo
MongoDB介绍MongoDB不是在实验室设计出来的。利用自己开发大型,高可用性和健壮性系统的经验,我们开发了MongoDB。我们并不是从零开始,而是发现 哪些地方有问题,然后尝试解决它。所以在我眼中,MongoDB让你从使用MySQL的基于关系的数据模型转变为基于文档的模型,从而获得如快速的嵌入式 文档,易管理,使用无模式数据库进行敏捷开发,易于横向扩展和伸缩(因为join不再重要)等大量特性。使用关系型数据时有很多东西工作的很好,比如索 引,动态查询和动态更新等,这些在MongoDB中也没怎么变化。比如,在MongoDB里设计索引应该和你在MySQL或Oracle里一样,你有选择 在一个内嵌的域上建索引的能力。– Eliot Horowitz, 10gen公司首席技术官和联合创始人1
为什么选择MongoDB1)、面向文档 文档(对象)和编程语言的数据类型很好的对应嵌入式文档和数组减少了join的必要动态类型(无模式)使模式演变非常容易没有join和(多对象)事务从而获得高性能和易伸缩性2
为什么选择MongoDB2)、高性能 没有join和事务使得读写操作很快可以索引嵌入式文档和数组可选的异步写操作3)、高可用性 复制服务器自动和主节点故障转移3
为什么选择MongoDB4)、易伸缩 最终一致性读操作分布到复制服务器上自动分片(数据跨服务器自动分区) 读写操作分布在不同的分片上 没有箩辞颈苍和事物使得分布式查询简单而高效5)、富查询语言4
Windows快速上手1)、下载32位二进制文件(单个文件最大2GB)64位二进制文件(官方推荐)2)、解压解压二进制包到任意位置MongoDB默认将数据存储在 /data/db 目录下,但是它不会自动创建目录5
Windows快速上手3)、启动并连接服务器mongod.exe - 数据库服务器mongo.exe - 管理shell【 双击即可 】默认情况下mongo.exe会建立到运行在 localhost的 mongod服务器的连接,并使用名为 test 的数据库。运行 mongo --help 查看其他选项。6
产颈苍下面是可执行文件尘辞苍驳辞诲:数据库服务端,类似尘测蝉辩濒诲,每个实例启动一个进程,可以蹿辞谤办为顿补别尘辞苍运行尘辞苍驳辞:客户端命令行工具,类似蝉辩濒辫濒耻蝉/尘测蝉辩濒,其实也是一个箩蝉解释器,支持箩蝉语法尘辞苍驳辞诲耻尘辫/尘辞苍驳辞谤别蝉迟辞谤别:将数据导入为产蝉辞苍格式的文件/将产蝉辞苍文件恢复为数据库,类似虫迟谤补肠产补肠办耻辫尘辞苍驳辞别虫辫辞谤迟/尘辞苍驳辞颈尘辫辞谤迟:将肠辞濒濒别肠迟颈辞苍导出为箩蝉辞苍/肠蝉惫格式数据/将数据导入数据库,类似尘测蝉辩濒诲耻尘辫/尘测蝉辩濒颈尘辫辞谤迟7
产颈苍下面是可执行文件产蝉辞苍诲耻尘辫:将产蝉辞苍格式的文件转储为箩蝉辞苍格式的数据尘辞苍驳辞蝉:分片路由,如果使用了蝉丑补谤诲颈苍驳功能,则应用程序连接的是尘辞苍驳辞蝉而不是尘辞苍驳辞诲惭辞苍驳辞蹿颈濒别蝉:骋谤颈诲贵厂管理工具尘辞苍驳辞蝉迟补迟:实时监控工具8
创建数据库// 第一次写操作会创建数据库: db.foo.insert( { a : 1 } ) db.foo.find() { _id : ..., a : 1 } 每个 MongoDB服务器都支持多个数据库。每个数据库都是相对独立的,并且出于安全性和为了方便管理,数据库的数据也独立存储。一个数据库可以包括一个或多个集,每个集中可以存放文档对象,同时可以为操作这些内容设置一个可选的安全认证。9
查询文档1)、find()从数据库中返回所有文档,或者没有匹配条目时返回 nullit 命令继续移动游标2)、findOne()从数据库中返回第一个文档,或者没有匹配条目时返回 null10
更新文档1)、update()命令db.collection.update( criteria, objNew, upsert, multi )criteria: update的查询条件,类似sql update查询内where后面的objNew?: update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的upsert?: 这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。multi?: mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。11
更新文档1)、update()命令例:db.test0.update( { "count" : { $gt : 1 } } , { $set : { "test2" : "OK"} } ); 只更新了第一条记录db.test0.update( { "count" : { $gt : 3 } } , { $set : { "test2" : "OK"} },false,true ); 全更新了db.test0.update( { "count" : { $gt : 4 } } , { $set : { "test5" : "OK"} },true,false ); 只加进去了第一条12
更新文档1)、update()命令例:db.test0.update( { "count" : { $gt : 5 } } , { $set : { "test5" : "OK"} },true,true ); 全加进去了db.test0.update( { "count" : { $gt : 15 } } , { $inc : { "count" : 1} },false,true);全更新了db.test0.update( { "count" : { $gt : 10 } } , { $inc : { "count" : 1} },false,false);只更新了第一条13
删除文档remove()命令db.things.remove({}); // removes all db.things.remove({n:1}); // removes all where n == 114
保存文档insert()命令db.things.insert({name:2011}); save()命令db.things.save({name:2012}); 15

More Related Content

Mongodb 20110610