MongoDB简介
2014-06-15 19:06
141 查看
http://zhufeng9282.blog.163.com/blog/static/2915910020120288572361/
NoSQL背景
数据高并发性的实时读取与写入
海量数据存储
海量数据的智能计算与挖掘
高性能,可扩展,可用性
正确认识NoSQL
NoSQL是用来区别关系型数据库的数据存储
NoSQL有灵活的Schema。
避免使用JOIN(连接)查询。
支持数据的水平扩展。
最终一致性
简单的访问接口(API)
主流NoSQL分类
面向文档的存储 ---MongoDB
Key-value的存储
列存储/列族(Column Store/Column Families)
MongoDB优势
不需要额外的缓存
丰富的查询
丰富的类型
内置replication和sharding,可扩展。
商业支持 10gen
MongoDB特性
面向文档的存储(BSON)
支持动态查询
索引
调优工具
区别于关系型数据库的更新(in-place)
Replication
Auto-sharding
MapReduce
MongoDB数据模型
database => collection => document
MongoDB术语
RDBMS Mongo
Table, View Collection
Row(s) JSON Document
Index Index
Join Embedded Document
Partition Shard
Partition Key Shard Key
MongoDB 数据类型
?JSON: null,布尔型(boolean),数字类型(numeric),字符串(string),数组(array),对象(object)
?BSON=JSON+
?二进制数据(binary data)
?数组(array) {“comments”:[“哈哈”,”顶一下”]}
?内嵌文档(embedded document) {“stuff”:{“name”:nicholas,age:27}}
?Object Id 当插入document的时候,MongoDB会自动设置一个_id做为key。
?字符串(String) string类型是UTF-8编码的。
?日期类型(date) MongoDB是以毫秒的形式来存储日期类型的。{“createDate”:new Date()}
安装
mongodb --dbpath=d:\mongo\db --logpath=d:\mongo\logs\mongo.log --install
增加: db.thing.insert({name:'zhufeng',age:22})
查询: *: db.thing.find()
where: db.thing.find({name:'zhufeng'})
$: db.thing.find({age:{$gt:13}}) $gt $lt $gte $lte
更新: db.thing.update({name:'zhufeng'},{'$set':{name:'kevin'}})
删除: db.thing.remove({age:{'$gt':24}})
db.thing.remove() --删除全部
关于 ObjectId
4f2673ac d3f200
31e1 396830
4f2673b8 d3f200
31e1 396831
4f2673f9 d3f200
31e1 396832
timestamp(8) machine id(6) process id(4)
counter(6)
索引
db.thing.ensureIndex({x:1,y:-1})
MapReduce-执行过程
?Map: key ->value 输出 的value为最终执行结果的聚合值
?Reduce:function reduce(key_obj, [value_obj, value_obj, ...]),处理[value1,value2,value3],可以循环处理,返回的是map的第二个参数。递归调用
?function finalize(key, value) -> final_value
–执行一次,一般用来处理平均数
?注意。Map的输出value和Reduce的返回value一致
GridFS
不要使用GridFS来保存小的二进制数据
GridFS需要两次查询:一次取出文件的元数据,另一次取出内容
允许相同的文件名存在
MD5校验文件完整性
MongoDB管理
db.addUser (username, password) db.removeUser(username)
db.addUser (username, password) db.removeUser(username)
db.currentOp()
db.killOp()
db.foo.stats()
db.foo.dataSize()
db.foo.storageSize()
db.foo.totalIndexSize()
db.foo.totalSize()
NoSQL背景
数据高并发性的实时读取与写入
海量数据存储
海量数据的智能计算与挖掘
高性能,可扩展,可用性
正确认识NoSQL
NoSQL是用来区别关系型数据库的数据存储
NoSQL有灵活的Schema。
避免使用JOIN(连接)查询。
支持数据的水平扩展。
最终一致性
简单的访问接口(API)
主流NoSQL分类
面向文档的存储 ---MongoDB
Key-value的存储
列存储/列族(Column Store/Column Families)
MongoDB优势
不需要额外的缓存
丰富的查询
丰富的类型
内置replication和sharding,可扩展。
商业支持 10gen
MongoDB特性
面向文档的存储(BSON)
支持动态查询
索引
调优工具
区别于关系型数据库的更新(in-place)
Replication
Auto-sharding
MapReduce
MongoDB数据模型
database => collection => document
MongoDB术语
RDBMS Mongo
Table, View Collection
Row(s) JSON Document
Index Index
Join Embedded Document
Partition Shard
Partition Key Shard Key
MongoDB 数据类型
?JSON: null,布尔型(boolean),数字类型(numeric),字符串(string),数组(array),对象(object)
?BSON=JSON+
?二进制数据(binary data)
?数组(array) {“comments”:[“哈哈”,”顶一下”]}
?内嵌文档(embedded document) {“stuff”:{“name”:nicholas,age:27}}
?Object Id 当插入document的时候,MongoDB会自动设置一个_id做为key。
?字符串(String) string类型是UTF-8编码的。
?日期类型(date) MongoDB是以毫秒的形式来存储日期类型的。{“createDate”:new Date()}
安装
mongodb --dbpath=d:\mongo\db --logpath=d:\mongo\logs\mongo.log --install
增加: db.thing.insert({name:'zhufeng',age:22})
查询: *: db.thing.find()
where: db.thing.find({name:'zhufeng'})
$: db.thing.find({age:{$gt:13}}) $gt $lt $gte $lte
更新: db.thing.update({name:'zhufeng'},{'$set':{name:'kevin'}})
删除: db.thing.remove({age:{'$gt':24}})
db.thing.remove() --删除全部
关于 ObjectId
4f2673ac d3f200
31e1 396830
4f2673b8 d3f200
31e1 396831
4f2673f9 d3f200
31e1 396832
timestamp(8) machine id(6) process id(4)
counter(6)
索引
db.thing.ensureIndex({x:1,y:-1})
MapReduce-执行过程
?Map: key ->value 输出 的value为最终执行结果的聚合值
?Reduce:function reduce(key_obj, [value_obj, value_obj, ...]),处理[value1,value2,value3],可以循环处理,返回的是map的第二个参数。递归调用
?function finalize(key, value) -> final_value
–执行一次,一般用来处理平均数
?注意。Map的输出value和Reduce的返回value一致
GridFS
不要使用GridFS来保存小的二进制数据
GridFS需要两次查询:一次取出文件的元数据,另一次取出内容
允许相同的文件名存在
MD5校验文件完整性
MongoDB管理
db.addUser (username, password) db.removeUser(username)
db.addUser (username, password) db.removeUser(username)
db.currentOp()
db.killOp()
db.foo.stats()
db.foo.dataSize()
db.foo.storageSize()
db.foo.totalIndexSize()
db.foo.totalSize()
相关文章推荐
- mongodb3.0.4安装简介
- MongoDB 简介
- MongoDB安装及shell简介
- Mongodb简介及Spring集成
- MongoDB中的MapReduce简介
- MongoDB系列教程(二):MongoDB简介
- mongodb入门简介
- 第五部分 架构篇 第十二章 MongoDB Replica Sets 架构(简介)
- mongodb指南(翻译)(十五) - developer zone - GridFS简介
- MongoDB系列(一):简介及安装
- MongoDB系列(一):简介及安装
- MongoDB(二):MongoDB简介及安装
- MongoDB --- 入门简介
- mongodb简介(转)
- MongoDB入门简介 java
- 30分钟学MongoDB系列——简介篇(new!!!)
- MongoDB入门简介
- MongoDB 简介
- MongoDB简介 MongoDB五大特色
- MongoDB - 简介和快速搭建