NoSQL意思是没有sql语句的数据库,指的是非关系型的数据库.
NoSQL的优点:
NoSQL的缺点:
MongoDB是由c++编写,一个基于分布式文件存储的数据库,主要作用是为Web应用提供可扩展的高性能数据存储解决方案,在高负载的情况下,添加更多的节点,可以保证服务器的性能
MongoDB对数据的存储格式为一个文档,数据结构由键值对组成.文档类似于JSON对象.字段值可以包含其他文档,数组及文档数组
{
name:"刘思元",
age:"20",
family:["寸","思","思"]
}
(1)内存管理机制上
(2)支持的数据类型
(3)事务处理
(4)性能
前提是在VM上安装CentOS7,并且配置好网络环境,安装Docker容器
1.拉取镜像
docker pull mongo:latest
2.创建和启动容器
docker run -d --restart=always -p 27017:27017 --name mymongo -v /data/db:/data/db -d mongo
3.进入容器
docker exec -it mymongo/bin/bash
4.使用MongoDB客户端进行操作
mongo
启动docker systemctl restart docker.service
进入容器 docker exec -it mymongo /bin/bash
查看数据库 show dbs
创建一个数据库 use MyFirstDB
(如果存在就使用这个数据库,不存在就创建)
创建一个集合db.createCollection("MyFirstDB")
插入数据 语句格式:db.集合名.save(数据)
db.User.save({name:'zhangsan',age:21,sex:true})
查看数据 db.User.find()
_id字段说明:Objectld是、id”的默认类型。Objectld使用12字节的存储空间,每个字节二位十六进制数字, 是一个24位的字符串
条件查询
db.User.find({"name":"刘思元"})
db.User.find({"name":"css"},{"age":1})
在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列
db.User.find().sort({age:1})
在 MongoDB 中使用 limit()方法来读取指定数量的数据,skip()方法来跳过指定数量的数据
db.User.find().skip(0).limit(3)
SQL句式:update Userset age = 100, sex = 0 where name = 'user1'
db.User.update({name:"zhangsan"}, {$set:{age:100, sex:0}})
移除对应id的行:db.User.remove(id)
移除所有:db.User.remove({})