mongdb学习笔记
1.MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的
2.支持动态查询
3.使用高效的二进制数据存储,包括大型对象(如视频等)
4.文件存储格式为BSON(一种JSON的扩展)
5.缺点:事务弱、SQL支持弱、无法高度优化查询(数仓适合)
6.capped collections:固定大小的数据结构,适合用来做日志或者缓存场景使用的表,会自动过期删除数据
7.连接命令:shell输入 mongo
8.查询的时候可以使用and或or的方式,也可以联合使用
9.$type 操作符可以过滤查询对象的类型
10.Limit与Skip方法,配合使用,可以实现分页
11.mongodb可以使用关系(嵌入式关系/引用),来关联对象之间的关系。数据库还能储存其它数据库中的表的主键ID
12.覆盖索引查询:查询的字段在索引中,可以快速高效的查找(注意排除ObjectID)
13.可以使用explain() 和 hint()来查询分析(索引的效率)
14.MongoDB没有事务,但是保证了原子性。可以通过db.collection.findAndModify() 这种原子操作方法,保证修改对象的一致性。
15.可以针对子文档查询,也可以对子文档建索引(关系型数据库不能这么玩)
16.索引会占资源,所以数据量少的表不建议建索引。索引不会被一些查询使用。索引建立有数量上的限制。
17.MongoDB使用OID(objectID)而不使用自增主键的原因,因为在多个 服务器上同步自动增加主键值既费力还费时。
18.OID可以自己创建,原生的OI里自带了时间戳,所以可以从它那里获取字段创建时间
19.MongoDB的Map Reduce方法,可以对数据进复杂处理
20.MongoDB支持全文检索(非中文)
21.mongodb支持正则表达式
22.mongodb使用GridFS来进行大文件管理
23.mongodb支持固定集合(插入满了就覆盖老的),可以作为缓存、日志的场景使用:capped collections
24.mongodb没有提供自增长的主键功能,但是可以通过自己实现(https://www.w3cschool.cn/mongodb/mongodb-autoincrement-sequence.html)