MongoDB自学(2)
条件操作符: gt(大于),gte(大于等于),lt(小于),lte(小于等于)
E.G:
db.People.find({age:{$gt:100}})//查找集合里age大于100的文档
注意:string类型的值不能查处结果,使用命令提示符进行添加时默认为string,可使用MongoDB compass进项修改;
E.G:
db.People.find({age:{$type:16}})//查询age这个名字下面类型是int32(16)的文档
显示条数的控制:limit
E.G:
db.BookList.find().limit(4)//显示4条查询出的文档
跳过几条的方法:skip()
E.G:
db.BookList.find().skip(4)//跳过前四条查询出的文档
补充:
db.BookList.find({},{"name":1,_id:0}).limit(2)
第一个{}里面放条件,若为空则显示所有的文档,
第二个()里面指定哪些列显示,哪些不显示(1表示显示,0表示不显示)
同时使用sort,skip,limit.不论先后顺序,执行的顺序都是sort→skip→limit;
skip和limit都是只适合小数据量的分页,百万级的数据建议使用where_limit
E.G:
db.BookList.find({Price:{$gt:150}}).sort({"name":1}).limit(10)
0
sort()排序:
E.G:
db.People.find({},{name:1,_id:0}).sort({age:1})//根据年龄升序排序且只显示名字
1升序
-1降序
索引:
附接收可选参数"
E.G:
db.People.ensureIndex({name:1})//创建根据名字升序排列的索引
聚合:
E.G:
db.People.aggregate([{$group :{_id:"$sex",num_tutorial:{$sum:1}}}])//根据性别进行升序的分组统计
简单的聚合表达式
管道:
将这次计算出的结果,当成下个运算的参数,管道可以重复使用;
$project:修改输入文档的结构.可以用来重命名,增加或修改域,也可以创建计算机结果以及嵌套文件.
$match:用于过滤文件,只输出符合条件的文档.$match使用MongoDB的标准查询.
$limit: 用来限制MongoDB聚合管道返回的文档数.
$skip: 用于在聚合管道中跳过制定数量的文档,并返回剩下的文档.
$unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数字的一个值.
$group: 将集合中的文档分组,可用于统计结果.
$sort: 将输出文档排序后输出.
$geoNear: 输出接近某一地理位置的有序文档.
MongoDB复制(副本集):
将数据同步到多个服务器的过程,复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性,并可以保证数据的可用性.还允许从硬件故障和服务终端中恢复数据.
什么是复制:
保障数据的安全性
数据高可用性(24*7)
灾难恢复
无需停机维护(备份,重建索引,压缩)
分布式读取数据
MongoDB复制至少需要两个节点,一个主节点,是负责处理客户端的请求,其余都是从节点,负责复制主节点上的数据
常见搭配方式为:一主一从 一主多从
客户端从主节点读取数据,在客户端写入数据到主节点时,主节点与从节点进行数据交互保障数据的一致性.
副本集特征:
N个节点的集群;
任何节点都可以当做主节点;
所有写入和操作在主节点;
自动故障转移????
自动恢复.
MongoDB分片:
分片:MongoDB中的另一种集群,就是分片技术,可以满足MongoDB数据量大量增长的需求.
当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量.这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据.
使用分片的情况:
复制所有的写入操作到主节点;
延迟的敏感数据会在主节点查询;
单个副本集限制在12个节点
当请求量巨大时会出现内存不足;
本地磁盘不足
垂直扩展价格昂贵.
http://blog.csdn.net/xqzhang8/article/details/72588278
详细资料
MongoDB自学(2)的更多相关文章
- MongoDB自学笔记2---1.2 初识MongoDB
1.2.1MongoDB简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之 ...
- MongoDB自学笔记1----1.1 NoSQL是什么?
第一章 走进MongoDB 1.1NoSQL是什么? 1.1.1NoSQL简介 对于不了解NoSQL的人都会认为NoSQL为No SQL,即不是SQL.但是这种理解是错误的, ...
- MongoDB自学(4)
超过存储上限或记录条数删除最早的记录:db.createCollection("集合名",{capped:true,size:1024,max:100})注解:指定集合名的最大记录 ...
- MongoDB自学(3)
MongoDB关系:MongoDB的关系表示多个文档之间在逻辑上的相互联系.文档之间可以通过嵌入和引用来建立联系.关系:1:11:NM:1M:N 嵌入式:{ id:11;name:嘻嘻嘻;addres ...
- mongodb自学
http://www.runoob.com/mongodb/mongodb-databases-documents-collections.html
- MongoDB自学日记3——架构及HA
在对mongoDB的操作有了一定基础后,终于可以扯扯HA和架构这两个高大上的概念了.在这之前当然还得弄清楚mongoDB的Key feature:Sharding. 1. Sharding Shard ...
- MongoDB自学日记2——权限
首先应该明确的是为什么要学MongoDB.OK,如果是仅仅出于对于流行技术的原始兴趣,可能并不能深入学习,还必须有应用需求.刚开始学习MongoDB,因为以前对其它数据库的了解也不是特别深入,所以许多 ...
- MongoDB自学日记1——基本操作
作为一个做底层及后台研发的,最近对NoSQL却产生了浓厚的兴趣,加入了一个DBA群,据说北京排的上号的DBA都在里面,然而里面基本都是Oracle系的,MySQL和MongoDB系的少之又少.学习靠不 ...
- MongoDB自学------(1)MongoDB4.0安装
一.环境 操作系统 安装包 安装方式 Ubuntu18.04 mongodb4.0 apt安装 Ubuntu18.04 mongodb4.0 docker安装 二.apt安装 sudo apt-key ...
随机推荐
- JenKins使用pm2部署.net core网站
登录事先准备好的 Jenkins 1 新建任务 2 源码管理 git 输入正确地址 3 构建环境:Delete workspace before build startsAbort the build ...
- 移动端布局方案汇总&&原理解析
阿里flexible布局 - 版本1.x 该布局于 2017年8月9日被2.0版本取代 实现原理 假设(UI稿750px宽) 设置viewport的 scale = 1/window.devicePi ...
- MongDB集群容灾方案步骤
MongoDB复制集优/特点支持大数据量.高扩展性.高性能.灵活数据模型.高可用性.同步机制数据复制的目的是使数据得到最大的可用性,避免单点故障引起的整站不能访问的情况的发生,Mongodb的副本集在 ...
- 虚拟机中安装Ubuntu后,安装VMwareTools出错的解决办法:Not enough free space to extract VMwareTools
1.选择安装VMwareTools 2.将加载后的Vmware Tools中的*.tar.gz文件,复制到桌面后提取,否则会报错: 3.然后进入提取后的文件下,运行终端 sudo ./vmware-i ...
- PostgreSQL 10.7 linux 主从配置
PostgreSQL 10.7 主从安装 硬件环境 云服务商:华为云 Linux: CentOS7.1 工具:Xshell Xftp IP:114.115.251.168 Port: 5432 543 ...
- Spring Boot获取前端页面参数的几种方式总结
Spring Boot的一个好处就是通过注解可以轻松获取前端页面的参数,之后可以将参数经过一系列处理传送到后台数据库. 获得的方式有很多种,这里稍微总结一下,大致分为以下几种: 1.指定前端url请求 ...
- powerDesigner生成数据结构图以及对应sql导出方法
1.下载powerDesigner 链接地址为http://soft.onlinedown.net/soft/577763.htm 2.打开软件,file -> new project,新建一个 ...
- 你所不知道的 CSS 阴影技巧与细节
关于 CSS 阴影,之前已经有写过一篇,box-shadow 与 filter:drop-shadow 详解及奇技淫巧,介绍了一些关于 box-shadow 的用法. 最近一个新的项目,CSS-Ins ...
- 千星项目.Net Core 2.1移植填坑记--OpenAuth.Core诞生
背景 很早就有把OpenAuth.Net----最好用的.net权限管理工作流框架(好吧!我在吹牛
- IM开发者的零基础通信技术入门(二):通信交换技术的百年发展史(下)
1.系列文章引言 1.1 适合谁来阅读? 本系列文章尽量使用最浅显易懂的文字.图片来组织内容,力求通信技术零基础的人群也能看懂.但个人建议,至少稍微了解过网络通信方面的知识后再看,会更有收获.如果您大 ...