为什么80%的码农都做不了架构师?>>>
基本概念
MongoDB 介绍
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
特点:
高性能、易部署、易使用,存储数据非常方便。
主要特性:
1 面向集合存储 2易存储对象类型的数据 3 模式自由 4 支持动态查询 5 支持完全索引,包含内部对象 6 支持查询 7支持复制和故障恢复 9 使用高效的二进制数据存储,包括大型对象(如视频等)
10 自动处理碎片,以支持云计算层次的扩展性 11 支持RUBY,PYTHON,JAVA,C++,PHP等多种语言 12 文件存储格式为BSON(一种JSON的扩展) 13 可通过网络访问
使用原理
所谓“面向集合”(Collenction-Oriented),意思是数据被分组存储在数据集中,被称为一个集合(Collenction)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。
模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。我们称这种存储形式为BSON(Binary JSON)。如下图所示
collection 集合就相当于RDBMS中的表
document 文档就相当于RDBMS的表中记录
更多的SQL to MongoDB 映射关系图,让你 更快掌握MongoDB 各种概念
http://docs.mongodb.org/manual/reference/sql-comparison/
BSON支持数据类型:
Type | Number | Notes |
Double | 1 | |
String | 2 | |
Object | 3 | |
Array | 4 | |
Binary data | 5 | |
Undefined | 6 | Deprecated. |
Object id | 7 | |
Boolean | 8 | |
Date | 9 | |
Null | 10 | |
Regular Expression | 11 | |
JavaScript | 13 | |
Symbol | 14 | |
JavaScript (with scope) | 15 | |
32-bit integer | 16 | |
Timestamp | 17 | |
64-bit integer | 18 | |
Min key | 255 | Query with -1. |
Max key | 127 | |
基础操作
创建数据库
use dbname #即可创建数据库,这时mongodb并没有建立数据文件,在添加集合collection才会创建数据文件
删除数据库
db.dropDatabase() #即可删除数据库
1:更多db命令请使用db.help查看 这些命令都是很好记忆,都是对象.方法,非常喜欢这种命令
2:在linux 下你可以使用tab 键补全命令
创建集合
db.createCollection("user") #创建集合,名称为user,你也可以传入其它参数,可以参考http://docs.mongodb.org/manual/reference/method/db.createCollection/#db.createCollection
删除集合
db.collectionName.drop()