SlideShare a Scribd company logo
1 of 15
MongoDB简介 MongoDB不是在实验室设计出来的。利用自己开发大型,高可用性和健壮性系统的经验,我们开发了MongoDB。我们并不是从零开始,而是发现 哪些地方有问题,然后尝试解决它。所以在我眼中,MongoDB让你从使用MySQL的基于关系的数据模型转变为基于文档的模型,从而获得如快速的嵌入式 文档,易管理,使用无模式数据库进行敏捷开发,易于横向扩展和伸缩(因为join不再重要)等大量特性。使用关系型数据时有很多东西工作的很好,比如索 引,动态查询和动态更新等,这些在MongoDB中也没怎么变化。比如,在MongoDB里设计索引应该和你在MySQL或Oracle里一样,你有选择 在一个内嵌的域上建索引的能力。 – Eliot Horowitz, 10gen公司首席技术官和联合创始人 1
为什么选择MongoDB 1)、面向文档  文档(对象)和编程语言的数据类型很好的对应 嵌入式文档和数组减少了join的必要 动态类型(无模式)使模式演变非常容易 没有join和(多对象)事务从而获得高性能和易伸缩性 2
为什么选择MongoDB 2)、高性能  没有join和事务使得读写操作很快 可以索引嵌入式文档和数组 可选的异步写操作 3)、高可用性  复制服务器自动和主节点故障转移 3
为什么选择MongoDB 4)、易伸缩  最终一致性读操作分布到复制服务器上 自动分片(数据跨服务器自动分区)  读写操作分布在不同的分片上  没有join和事物使得分布式查询简单而高效 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
bin下面是可执行文件 mongod: 数据库服务端,类似mysqld,每个实例启动一个进程,可以fork为Daemon运行 mongo: 客户端命令行工具,类似sqlplus/mysql,其实也是一个js解释器,支持js语法 mongodump/mongorestore: 将数据导入为bson格式的文件/将bson文件恢复为数据库,类似xtracbackup mongoexport/mongoimport: 将collection导出为json/csv格式数据/将数据导入数据库, 类似mysqldump/mysqlimport 7
bin下面是可执行文件 bsondump: 将bson格式的文件转储为json格式的数据 mongos: 分片路由,如果使用了sharding功能,则应用程序连接的是mongos而不是mongod Mongofiles: GridFS管理工具 mongostat: 实时监控工具 8
创建数据库 // 第一次写操作会创建数据库:  db.foo.insert( { a : 1 } )  db.foo.find()  { _id : ..., a : 1 }  每个 MongoDB服务器都支持多个数据库。每个数据库都是相对独立的,并且出于安全性和为了方便管理,数据库的数据也独立存储。 一个数据库可以包括一个或多个集,每个集中可以存放文档对象,同时可以为操作这些内容设置一个可选的安全认证。 9
查询文档 1)、find() 从数据库中返回所有文档,或者没有匹配条目时返回 null it 命令继续移动游标 2)、findOne() 从数据库中返回第一个文档,或者没有匹配条目时返回 null 10
更新文档 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 == 1 14
保存文档 insert()命令 db.things.insert({name:2011});  save()命令 db.things.save({name:2012});  15

More Related Content

Viewers also liked

MongoDB gridfs
MongoDB gridfsMongoDB gridfs
MongoDB gridfsXue Wei
 
Nosql七种武器之长生剑 mongodb的使用介绍
Nosql七种武器之长生剑 mongodb的使用介绍Nosql七种武器之长生剑 mongodb的使用介绍
Nosql七种武器之长生剑 mongodb的使用介绍yczealot
 
Geografia pga1
Geografia pga1Geografia pga1
Geografia pga1takahico
 
Anexo actividad nº 1 secuencia normalizada
Anexo actividad nº 1 secuencia normalizadaAnexo actividad nº 1 secuencia normalizada
Anexo actividad nº 1 secuencia normalizadaSailaMJ
 
Historinha emoçoes
Historinha emoçoesHistorinha emoçoes
Historinha emoçoesMisterios10
 
Tema 1 el arte del sonido
Tema 1 el arte del sonidoTema 1 el arte del sonido
Tema 1 el arte del sonidojopape72
 
deber de compu...(contabilidad)
deber de compu...(contabilidad)deber de compu...(contabilidad)
deber de compu...(contabilidad)Key Jinp
 
Powerpointmargaritas
PowerpointmargaritasPowerpointmargaritas
Powerpointmargaritascaritoriver
 
Aigüestortes sergi-roger-francesc-oriol f
Aigüestortes  sergi-roger-francesc-oriol fAigüestortes  sergi-roger-francesc-oriol f
Aigüestortes sergi-roger-francesc-oriol fntpalau
 

Viewers also liked (20)

MongoDB gridfs
MongoDB gridfsMongoDB gridfs
MongoDB gridfs
 
Nosql七种武器之长生剑 mongodb的使用介绍
Nosql七种武器之长生剑 mongodb的使用介绍Nosql七种武器之长生剑 mongodb的使用介绍
Nosql七种武器之长生剑 mongodb的使用介绍
 
DIgital Nomad
DIgital NomadDIgital Nomad
DIgital Nomad
 
Slide
SlideSlide
Slide
 
Dibujos para pensar
Dibujos para pensarDibujos para pensar
Dibujos para pensar
 
Geografia pga1
Geografia pga1Geografia pga1
Geografia pga1
 
Anexo actividad nº 1 secuencia normalizada
Anexo actividad nº 1 secuencia normalizadaAnexo actividad nº 1 secuencia normalizada
Anexo actividad nº 1 secuencia normalizada
 
Rm1
Rm1Rm1
Rm1
 
Presen mi familia
Presen mi familiaPresen mi familia
Presen mi familia
 
Historinha emoçoes
Historinha emoçoesHistorinha emoçoes
Historinha emoçoes
 
Calendario
CalendarioCalendario
Calendario
 
Tema 1 el arte del sonido
Tema 1 el arte del sonidoTema 1 el arte del sonido
Tema 1 el arte del sonido
 
Mirari Espe
Mirari   EspeMirari   Espe
Mirari Espe
 
deber de compu...(contabilidad)
deber de compu...(contabilidad)deber de compu...(contabilidad)
deber de compu...(contabilidad)
 
Powerpointmargaritas
PowerpointmargaritasPowerpointmargaritas
Powerpointmargaritas
 
Newsletter 02
Newsletter 02Newsletter 02
Newsletter 02
 
Foc 13
Foc 13Foc 13
Foc 13
 
Carátulas de los libros mas creativos del mundo
Carátulas de los libros mas creativos del mundoCarátulas de los libros mas creativos del mundo
Carátulas de los libros mas creativos del mundo
 
1 plata
1 plata1 plata
1 plata
 
Aigüestortes sergi-roger-francesc-oriol f
Aigüestortes  sergi-roger-francesc-oriol fAigüestortes  sergi-roger-francesc-oriol f
Aigüestortes sergi-roger-francesc-oriol f
 

Similar to Mongodb 20110610

深入学习Mongo db
深入学习Mongo db深入学习Mongo db
深入学习Mongo dbLucien Li
 
MongoDB in SNS
MongoDB in SNSMongoDB in SNS
MongoDB in SNSkidrane
 
基于架构的开发模式
基于架构的开发模式基于架构的开发模式
基于架构的开发模式thinkinlamp
 
基于架构的开发模式
基于架构的开发模式基于架构的开发模式
基于架构的开发模式samon127
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQLjasonfuoo
 
Django敏捷开发 刘天斯
Django敏捷开发 刘天斯Django敏捷开发 刘天斯
Django敏捷开发 刘天斯liuts
 
微博基于Docker的混合云平台设计与实践
微博基于Docker的混合云平台设计与实践微博基于Docker的混合云平台设计与实践
微博基于Docker的混合云平台设计与实践Weibo Corporation
 
1.基础篇 修改by徐定翔2 去掉批注
1.基础篇 修改by徐定翔2 去掉批注1.基础篇 修改by徐定翔2 去掉批注
1.基础篇 修改by徐定翔2 去掉批注gavin shaw
 
110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercuryZoom Quiet
 
常用Js框架比较
常用Js框架比较常用Js框架比较
常用Js框架比较Adam Lu
 
Single-Page Application Design Principles 101
Single-Page Application Design Principles 101Single-Page Application Design Principles 101
Single-Page Application Design Principles 101Jollen Chen
 
Mongo db 簡介
Mongo db 簡介Mongo db 簡介
Mongo db 簡介昱劭 劉
 
百度搜索引擎优化指南
百度搜索引擎优化指南百度搜索引擎优化指南
百度搜索引擎优化指南kai cui
 
给学习J2 Ee的朋友一些值得研究的开源项目
给学习J2 Ee的朋友一些值得研究的开源项目给学习J2 Ee的朋友一些值得研究的开源项目
给学习J2 Ee的朋友一些值得研究的开源项目yiditushe
 
Big Data, NoSQL, and MongoDB
Big Data, NoSQL, and MongoDBBig Data, NoSQL, and MongoDB
Big Data, NoSQL, and MongoDBMonster Supreme
 

Similar to Mongodb 20110610 (16)

深入学习Mongo db
深入学习Mongo db深入学习Mongo db
深入学习Mongo db
 
MongoDB in SNS
MongoDB in SNSMongoDB in SNS
MongoDB in SNS
 
基于架构的开发模式
基于架构的开发模式基于架构的开发模式
基于架构的开发模式
 
基于架构的开发模式
基于架构的开发模式基于架构的开发模式
基于架构的开发模式
 
Introduction to NoSQL
Introduction to NoSQLIntroduction to NoSQL
Introduction to NoSQL
 
Django敏捷开发 刘天斯
Django敏捷开发 刘天斯Django敏捷开发 刘天斯
Django敏捷开发 刘天斯
 
微博基于Docker的混合云平台设计与实践
微博基于Docker的混合云平台设计与实践微博基于Docker的混合云平台设计与实践
微博基于Docker的混合云平台设计与实践
 
1.基础篇 修改by徐定翔2 去掉批注
1.基础篇 修改by徐定翔2 去掉批注1.基础篇 修改by徐定翔2 去掉批注
1.基础篇 修改by徐定翔2 去掉批注
 
110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury
 
常用Js框架比较
常用Js框架比较常用Js框架比较
常用Js框架比较
 
Single-Page Application Design Principles 101
Single-Page Application Design Principles 101Single-Page Application Design Principles 101
Single-Page Application Design Principles 101
 
qcon-bada
qcon-badaqcon-bada
qcon-bada
 
Mongo db 簡介
Mongo db 簡介Mongo db 簡介
Mongo db 簡介
 
百度搜索引擎优化指南
百度搜索引擎优化指南百度搜索引擎优化指南
百度搜索引擎优化指南
 
给学习J2 Ee的朋友一些值得研究的开源项目
给学习J2 Ee的朋友一些值得研究的开源项目给学习J2 Ee的朋友一些值得研究的开源项目
给学习J2 Ee的朋友一些值得研究的开源项目
 
Big Data, NoSQL, and MongoDB
Big Data, NoSQL, and MongoDBBig Data, NoSQL, and MongoDB
Big Data, NoSQL, and MongoDB
 

Mongodb 20110610