1.什么是MongoDB?
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
下面这是一个MongoDB的数据结构图
2.MongoDB特点。
1、MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
2、临时查询-MongoDB支持按字段,范围查询和正则表达式搜索。可以查询返回文档中的特定字段。Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
3、如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
4、Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
5、负载平衡-MongoDB使用分片的概念,通过在多个MongoDB实例之间拆分数据来水平扩展。MongoDB可以在多台服务器上运行,以平衡负载或复制数据,以便在硬件出现故障时保持系统正常运行。
3.安装MongoDB
#拉取镜像
docker pull mongo:latest
#创建和启动容器
docker run -d --restart=always -p 27017:27017 --name mymongo -v /data/db:/data/db -d mongo
#进入容器
docker exec -it mymongo /bin/bash
#使用MongoDB客户端进行操作
mongo
> show dbs #查询所有的数据库
admin 0.000GB
config 0.000GB
local 0.000GB
4. 操作MongoDB
1、新增
db.User.save({name:'小三',age:21,sex:true})
db.User.find()
{"_id": Objectld("4f69e680c9106ee2ec95da66"), "name": "小三", "age": 21,
"sex": true}
2、查询
select * from User where name = '小三'
db.User.find({name:"小三"})
3、更新
update Userset age = 100, sex = 0 where name = 'user1'
db.User.update({name:"小三"}, {$set:{age:100, sex:0}})
4、删除
db.User.remove(id)