标签:
MongoDB是一种文档存储的NoSQL数据库,NoSQL数据库是非关系型数据库
不同于传统的关系型数据库统称为NoSQL数据库。适用于处理超大数据。
2009年在亚特兰大举行的”no:sql(east)”讨论会是一个里程碑,其口号是”select fun, profit from real_world where relational=false;”。因此,对NoSQL最普遍的解释是”非关联型的”,强调Key-Value Stores和文档数据库的优点,而不是单纯的反对RDBMS。
在计算机科学中, CAP定理(CAP theorem), 又被称作 布鲁尔定理(Brewer’s theorem), 它指出对于一个分布式计算系统来说,不可能同时满足以下三点:
- 一致性 Consistency
- 可用性 Availability
- 分隔容忍 Partition Tolerance
CAP认为一个分布式系统最多只能满足以上三点钟的两点,因此有:
CA原则、CP原则、AP原则
- CA 单点集群、满足一致性、可用性的系统,一般在可扩展性上不高
- CP 满足一致性、分隔容忍性的系统,通常在性能上不是很好
- AP 满足可用性、分割容忍性的系统,通常可能对一致性要求低一些
NoSQL数据库的原则
- Basic Available 基本可用性
- Soft-State 软状态/柔性事务(可理解为无连接的)
- Eventually Consistency 最终一致性
RDBMS
- 高度组织化结构化数据
- 结构化查询语言(SQL) (SQL)
- 数据和关系都存储在单独的表中。
- 数据操纵语言,数据定义语言
- 严格的一致性
- 基础事务
NoSQL
- 代表着不仅仅是SQL
- 没有声明性查询语言
- 没有预定义的模式
- 键 - 值对存储,列存储,文档存储,图形数据库
- 最终一致性,而非ACID属性
- 非结构化和不可预知的数据
- CAP定理
- 高性能,高可用性和可伸缩性
brew update
brew install mongodb
brew install mongodb --with-openssl //带TLS/SSL支持
brew install mongodb --devel //获取最新版本的
sudo mkdir -p /data/db
sudo mongod //如果给/data/db加了权限的话,可以省掉sudo
如果你需要进入MongoDB后台管理,你需要先打开mongodb装目录的下的bin目录,然后执行mongo命令文件。
MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。
当你进入mongoDB后台后,它默认会链接到 test 文档(数据库)
$ cd /usr/local/bin #其实我不用打开这个,直接用mongo也是可以的
$ ./mongo
> 2+2
4
> db.runoob.insert({x:10})
WriteResult({ "nInserted" : 1 })
> db.runoob.find()
{ "_id" : ObjectId("5604ff74a274a611b0c990aa"), "x" : 10 }
MongoDB 提供了简单的 HTTP 用户界面。 如果你想启用该功能,需要在启动的时候指定参数 –rest 。
$ mongod --rest
见上
用pymongo
import pymongo
client = pymongo.MongoClient(‘127.0.0.1‘,30017)
client.bigsci.authenticate(‘username‘,‘password‘) #给某个数据库授权
db = client.bigsci #选择一个数据库
collection = db.wiki #选择一个集合
res = collection.find_one() #查询
标签:
原文地址:http://blog.csdn.net/u013075468/article/details/51329351