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)
mongdb学习笔记的更多相关文章
- MongoDB学习笔记—权限管理
1.MongoDB权限介绍 a 上篇文章中,我们在Linux下配置了MongoDB环境并且将其设置为服务随机器启动而启动,那么接下来这篇文章我们就来简单说一下MongoDB下对登录用户权限的管理. b ...
- mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)
最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...
- SpringBoot学习笔记(十一:使用MongoDB存储文件 )
@ 目录 一.MongoDB存储文件 1.MongoDB存储小文件 2.MongoDB存储大文件 2.1.GridFS存储原理 2.2.GridFS使用 2.2.1.使用shell命令 2.2.2.使 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
随机推荐
- Java常考面试题(一)
https://blog.csdn.net/linzhiqiang0316/article/details/80473906
- nginx的gzip压缩功能
我们在开发网站的时候,应该要考虑到pv,因为pv比较大可能会造成服务器带宽不够用,进而导致用户体验变差. 这个时候我们就可以考虑用nginx的gzip功能. 在nginx中开启gzip压缩功能很简单, ...
- shell 中的小技巧
去掉最后一个字符 sed 's/.$//' awk '{sub(/.$/,"")}1' awk '{printf $0"\b \n"}' [root@ ~]# ...
- BZOJ 1232 安慰奶牛题解
题目传送门:BZOJ 1232 这是一个边权和点权结合在一起的题,但是因为要从当前点出发并回到原点,所以每个边都被经过了两次,节点至少被经过一次,所以我们将边权重新赋值,所以推出 那么遍历之后,并不是 ...
- vue2.0之Vue Baidu Map 局部注册使用
文档地址:https://dafrok.github.io/vue-baidu-map/#/zh/start/usage 局部注册 <template> <baidu-map id= ...
- Codeforces 822D My pretty girl Noora - 线性筛 - 动态规划
In Pavlopolis University where Noora studies it was decided to hold beauty contest "Miss Pavlop ...
- PowerDesigner 学习:十大模型及五大分类
个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...
- topcoder srm 683 div1
problem1 link 肯定存在相邻两堆满足不会存在任何操作在这两堆之间进行.然后就成为一条链,那么只需要维护链的前缀和即可判断当前堆和前一堆之间需要多少次操作. problem2 link 对于 ...
- Vue学习【第四篇】:Vue 之webpack打包工具的使用
什么是webpack webpack是一个模块打包工具.用vue项目来举例:浏览器它是只认识js,不认识vue的.而我们写的代码后缀大多是.vue的,在每个.vue文件中都可能html.js.css甚 ...
- 关于linux下自定义的 alias文件和自定义函数库的通用写法(只适合自己的)
使用alias和自定义的function的必要性和重要性就不说了 , 自己的通用做法是: 可以创建: ~/bin/my.alias 文件 作为自定义的 alias专门文件 创建: ~/libsh/my ...