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学习笔记的更多相关文章

  1. MongoDB学习笔记—权限管理

    1.MongoDB权限介绍 a 上篇文章中,我们在Linux下配置了MongoDB环境并且将其设置为服务随机器启动而启动,那么接下来这篇文章我们就来简单说一下MongoDB下对登录用户权限的管理. b ...

  2. mongoDB 学习笔记纯干货(mongoose、增删改查、聚合、索引、连接、备份与恢复、监控等等)

    最后更新时间:2017-07-13 11:10:49 原始文章链接:http://www.lovebxm.com/2017/07/13/mongodb_primer/ MongoDB - 简介 官网: ...

  3. SpringBoot学习笔记(十一:使用MongoDB存储文件 )

    @ 目录 一.MongoDB存储文件 1.MongoDB存储小文件 2.MongoDB存储大文件 2.1.GridFS存储原理 2.2.GridFS使用 2.2.1.使用shell命令 2.2.2.使 ...

  4. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  5. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  6. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  7. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  8. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  9. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

随机推荐

  1. hive 中简单的udf函数编写

    .注册函数,使用using jar方式在hdfs上引用udf库. $hive.注销函数,只需要删除mysql的hive数据记录即可. delete from func_ru ; delete from ...

  2. 自写Jquery插件 Combobox

    原创文章,转载请注明出处,https://www.cnblogs.com/GaoAnLee/p/9092421.html 上效果 html <span id='combobox' class=' ...

  3. SQLServer 比like好用的函数 charindex

    比如查找用户名包含有"c"的所有用户, 可以用 use mydatabase select * from table1 where username like'%c%" ...

  4. php脚本#!/usr/bin/env php写法的好处

    脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它.比如php脚本的第一行可以写成如下几种格式#!/usr/bin/php#!/usr/bin/env php#!/us ...

  5. mycat->oracle报java.sql.SQLException: 无法从套接字读取更多的数据

    今天下午,测试环境清算的时候又出现了之前的一个异常,这次把错误信息全部打出来了,java.sql.SQLException: 无法从套接字读取更多的数据,是使用mycat连接oracle的,如下所示: ...

  6. pycharm 安装激活操作

    pycharm 安装激活操作 什么是 PyCharm PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管 ...

  7. Python学习基础(二)——集合 深浅拷贝 函数

    集合 # 集合 ''' 集合是无序不重复的 ''' # 创建列表 l = list((1, 1, 1)) l1 = [1, 1, 1] print(l) print(l1) print("* ...

  8. linux普通用户提权

    tar通配符注入. echo 'echo "chenglee ALL=(root) NOPASSWD: ALL" > /etc/sudoers' > demo.sh e ...

  9. Kali系列之ettercap欺骗

    ettercap在局域网中使用欺骗, 捕获对象浏览器中的图片. 环境 攻击方:kali linux, ip:192.168.137.129 目标方ip:192.168.137.130 路由器:192. ...

  10. vue2.0子组件修改父组件props数据的值

    从vue1.0升级至2.0之后 prop的.sync被去除 因此直接在子组件修改父组件的值是会报错的如下: 目的是为了阻止子组件影响父组件的数据那么在vue2.0之后 如何在子组件修改父组件props ...