MongoDB简介
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。
NoSql数据库的CAP理论
CAP理论,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。
- 一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
- 可用性(A):在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
- 分区容错性(P):以实际效果而言,分区相当于对通信的时限要求。系统如果不能在时限内达成数据一致性,就意味着发生了分区的情况,必须就当前操作在C和A之间做出选择。
安装MongoDB
用OSX 的 brew 来安装 mongodbbrew install mongodb
或者 sudo brew install mongodb
如果要安装支持 TLS/SSL 命令如下:brew install mongodb --with-openssl
查看是否安装成功mongod -version
如果显示版本信息,说明已经安装成功
启动mongo
mongo默认会在根目录 /data/db 下启动服务,所以需要先创建此路径。sudo mkdir -p /data/db
然后开启服务mongod
或者开启指定路径的服务mongod --dbpath=xxx
新开一个终端,输入命令mongo
进入mongo系统
再次输入命令测试show dbs
显示如下
1 | > show dbs |
即已成功运行
基本命令
显示数据库show dbs
显示数据表show collections
选择或者创建 mydb数据表use mydb
增
如果没有 user表 会自动创建db.user.save({"name":"zhangsan","age":2})
删
删除数据表db.user.drop()
删除数据库use mydb
db.dropDatasase()
删除记录db.user.remove({"name":"zhangsan"})
查
查所有db.user.find()
查 age=2db.user.find({"age":2})
改
只改动某一项值
1 | db.user.update({"_id" : ObjectId("5b41c89323c223baaa7d4ef1")},{$set:{"name":"wangwu"}}) |
如果没有set,相当于覆盖这条记录
golang中使用mongo
golang demo
1 | package main |