什么是mongdb?
mongdb中文网给出的定义是:
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库(nosql)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
MongDB与sql中大致对应关系:
sql术语/概念 | MongoDB术语/概念 | 解释说明 |
datebase | datebase | 数据库 |
table | collection | 表/集合 |
row | document | 行/文档 |
column | field | 字段/域 |
index | index | 索引 |
table joins | 表连接操作,MongoDB不能进行表连接 | |
primary key | primary key | 在sql中需要自定义/MongoDB自动将_id设置为主键 |
MongDB的优缺点以及应用场景:
MongDB的优点:
1.MongoDB可以解决Mysql 的“三高”问题:
Ⅰ.对数据库高并发写入需求
Ⅱ.对海量数据高效率存储访问需求
Ⅲ.对数据库高扩展和高可用的需求
2.第三方支持丰富
3.文档结构的存储方式,能够更便捷的获取数据
MongDB的缺点:
1.不支持多表联查
2.MongoDB 不支持事务
应用场景:
1.社交场景,比如朋友圈,附近的人的地点的存储
2.游戏场景,比如用户当前装备,得分等
3.物流场景,比如快递的位置,状态,途径
4.视频场景,比如直播中的点赞数和互动留言等
mongdb的基本操作:
mongdb可视化工具有很多,比如studio3t,MongoDB Compass Community,
NoSQLBooster(mongobooster)等,下面用studio3t进行增删改查:
查询语句MongoDB 查询文档使用 find() 方法。
find() 方法以非结构化的方式来显示所有文档。
db.集合名.find(query)
pretty() 方法以格式化的方式来显示所有文档,linux下有用。
db.集合名.find().pretty()
用Java操作MongoDB
MongoDB支持Perl、PHP、Java、C#、JavaScript、Ruby、C 和C++语言的驱动程序,
下面用Java实现MongoDB的基本连接操作:
MongoDB的增删改查:
在filters过滤器中提供了多种限定条件: