1.mongodb的业务应用场景
功能:传统数据库难以应对三高 高并发 高存储 高可用(拓展性)
1/社交存储用户信息.地理位置索引
2/游戏场景,高效存储访问()
3/物流场景 订单在运输过程会不断更新.大文档
4/物联网 设备设备信息,日志
5/视频直播 存储用户信息点赞信息 共同特点
-----1/数据量大
-----2/写入频繁(读写)
-----3/事务性要求不高(缺点)(转账用mysql事务性语言)
2.什么时候使用,比mysql成本低
1.不需要事务和join查询
2.新应用,需求会变
3. 2000-3000qps及更高
4.数据达tb和pb…
5.数据不丢失
6.高可用
7.大量地理位置查询文本查询
3.介绍(开源,高性能,无模式[没有行和列])
1.关系数据数据库的非关系数据库(语句像mysql)
2. 类似json的bson二进制
4.与mysql对比
关系型数据库 mongodb
数据库 数据库
表 Collection
行 Document
列 field
index index
表连接 没有
嵌入文档 代替多表连接
primary key(自动设定_id为主键uuid)
5.bson(二进制的json) 数据类型
字符串 {“x”:“xxx”} 对象id {“x”: ObjectId()}
布尔值 {“x”:true}
数组 {“x”:[“a”,“b”,“c”]}
32位整数
64位整数 shell不支持
64位浮点数 {“x”:3.14,“y”:3}
null {“x”:null} undefined {“x”:undefined}
符号shell不支持
正则表达式 {“x”:/foobar/i}
代码(函数) {“x”:function{/…/}}
二进制数据
最大值/最小值
6.安装
// 命名规则 x,y,z , x大版本 y中版本(奇数是开发版,偶数是稳定版) z小版本
1.官网4.0.10版本—>zip
2.解压启动
-----方式一:(直接指定)(用于测试)
到bin目录外将data/db目录
—>bin目录cmd—>
mongod --dbpath=…\data\db—>回车–>看到27017则启动成功
-----方式二:(自定义指定配置文件)(部署一定要用这个)
1. bin 同级建conf文件夹—>新建文件夹
编辑mongod.conf—>(yaml格式)
strorage:
dbPath: D:\xxx\xx
2. mongod -f …\conf\mongod.conf
7.启动client客户端(server不能关)
//cmd,直接数据库
mongo
//查看是否成功
show dbs
//指定主机名和端口
mongo --host=localhost --port=27017
//图形化界面 Compass--下载zip-->找到exe执行
8.linux安装和连接
#下载包后上传上去解压
tar -xvf xxx.tgz
#数据存储的目录
mkdir -p /mongodb/single/data/db !!!db也是文件夹
#日志存储目录
mkdir -p /mongodb/single/log !!!db也是文件夹
#复制文档的配置文件内容到下面这个文件
vi /mongodb/single/mongod.conf
#目录,还有以文件存储,还有
#局域网的ip可以通过公网看
#到bin目录
monod -f 配置文件路径
#检查进程号
ps -ef | grep mongod
#用连接工具连接,如果连接不上,必须关闭防火墙
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
#关闭
kill -2 xxxid
9.数据库操作
show dbs; #这个是最大的库,下面会创建
use aaa; #如果没有就帮你创建,只在内存中,(mongodb的特性是分内存和磁盘存储)
show databases
#连接远程的数据库
mongo --host=xxxip
#查看内存和磁盘的数据库
db
#3个数据库admin:类似root库,用户的权限
#local:拥有不会被复制,用于集群的时候,希望这个库不被复制,(其他库数据一致)
#config: 用于分片设置和相关信息
#删除数据库(相当于js的方法 js的shell)
db.dropDatabase();
10.集合操作
1.集合的显示创建
db.createCollection("myname")
#查看集合
show collections
#删除
db.myname.drop()