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组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
随机推荐
- 在CentOS 6.3中安装与配置cmake
安装说明安装环境:CentOS-6.3安装方式:源码编译安装软件:cmake-2.8.10.2.tar.gz下载地址:http://www.cmake.org/cmake/resources/soft ...
- centos 文件新建、删除、移动、复制等命令
创建目录 mkdir 文件名 mkdir /var/www/test cp复制命令 cp命令复制文件从一个位置到另一位置.如果目的地文件存在,将覆复写该文件: 如果目的地目录存在,文件将复制到该目录下 ...
- pycharm快捷键及常用设置
Alt+Enter 自动添加包 shift+O 自动建议代码补全 Ctrl+t SVN更新 Ctrl+k SVN提交 Ctrl + / 注释(取消注释)选择的行 Ctrl+Shift+F 高级查找 C ...
- MySql安装和基本管理
一.什么是数据库? mysql就是一个基于socket编写的C/S架构的软件 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流 ...
- runltp<p-pan
- fjwc2019 D2T1 直径 (构造)
#181. 「2019冬令营提高组」直径 (这题构造题是我考场上唯一一A的题........) 先看这个特殊的Subtask4 Subtask 4(20pts):$\sqrt{1+8k}$ 为整 ...
- AngularJs 开发遇到的问题,以及解决方案
1>ng-if 导致 ng-model 失效的问题 比如说下拉联动隐藏显示的时候,多个验证模块,需要使用到ng-if.可以使用 $parent 来解决这个问题 ng-model="$p ...
- 实现定时器定时 1 秒钟,LED 亮灭显示
实现定时器定时 1 秒钟,LED 亮灭显示 要求 每隔一秒钟,实现LED灯的显隐转换 实验代码 /*************************************************** ...
- Android 4.4 根据uri获取路径的方法
当我们选择图片以后,返回的是Uri,此时我们要把路径存储到数据库,必须将其转换成String类型. URI: //content://com.android.providers.media.docu ...
- Mysql 用命令行导出导入数据方法
方法一: 导出参考:https://www.cnblogs.com/activiti/p/6700044.html 用mysqldump可以导出整个数据库里的表和数据,不单单是只导出某个表的数据 命令 ...