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()