mongodb是什么mongodb是一种文档存储的nosql数据库,nosql数据库是非关系型数据库
关系型数据库四原则acid原子性 atomicity一致性 consistency独立性 isolation持久性 durabilitynosql数据库不同于传统的关系型数据库统称为nosql数据库。适用于处理超大数据。
2009年在亚特兰大举行的”no:sql(east)”讨论会是一个里程碑,其口号是”select fun, profit from real_world where relational=false;”。因此,对nosql最普遍的解释是”非关联型的”,强调key-value stores和文档数据库的优点,而不是单纯的反对rdbms。
cap定理(cap theorem)在计算机科学中, cap定理(cap theorem), 又被称作 布鲁尔定理(brewer’s theorem), 它指出对于一个分布式计算系统来说,不可能同时满足以下三点:
- 一致性 consistency
- 可用性 availability
- 分隔容忍 partition tolerance
cap认为一个分布式系统最多只能满足以上三点钟的两点,因此有:
ca原则、cp原则、ap原则
- ca 单点集群、满足一致性、可用性的系统,一般在可扩展性上不高
- cp 满足一致性、分隔容忍性的系统,通常在性能上不是很好
- ap 满足可用性、分割容忍性的系统,通常可能对一致性要求低一些
base原则nosql数据库的原则
- basic available 基本可用性
- soft-state 软状态/柔性事务(可理解为无连接的)
- eventually consistency 最终一致性
nosql数据库分类
rdbms vs nosqlrdbms
- 高度组织化结构化数据
- 结构化查询语言(sql) (sql)
- 数据和关系都存储在单独的表中。
- 数据操纵语言,数据定义语言
- 严格的一致性
- 基础事务
nosql
- 代表着不仅仅是sql
- 没有声明性查询语言
- 没有预定义的模式
- 键 - 值对存储,列存储,文档存储,图形数据库
- 最终一致性,而非acid属性
- 非结构化和不可预知的数据
- cap定理
- 高性能,高可用性和可伸缩性
安装(macos)1. homebrew安装brew update brew install mongodbbrew install mongodb --with-openssl //带tls/ssl支持brew install mongodb --devel //获取最新版本的
2. 新建/data/db目录sudo mkdir -p /data/db
3. 启动服务sudo mongod //如果给/data/db加了权限的话,可以省掉sudo
4. 后台管理shell如果你需要进入mongodb后台管理,你需要先打开mongodb装目录的下的bin目录,然后执行mongo命令文件。
mongodb shell是mongodb自带的交互式javascript shell,用来对mongodb进行操作和管理的交互式环境。
当你进入mongodb后台后,它默认会链接到 test 文档(数据库)
$ cd /usr/local/bin #其实我不用打开这个,直接用mongo也是可以的$ ./mongo> 2+24> db.runoob.insert({x:10})writeresult({ ninserted : 1 })> db.runoob.find(){ _id : objectid(5604ff74a274a611b0c990aa), x : 10 }
5. mongodb web 用户界面mongodb 提供了简单的 http 用户界面。 如果你想启用该功能,需要在启动的时候指定参数 –rest 。
$ mongod --rest
基本使用见上
与python结合使用用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() #查询
