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 ...
 
随机推荐
- canvas实现随机验证码
			
canvas实现随机验证码 知识点 canvas生成背景图和文字 设置字体样式和大小 String的fromCharCode(code码)生成大小写字母和数字 str.toLowerCase()转小写 ...
 - crontab常用
			
--crontab检查是否安装[oracle@rac1 ~]$ rpm -qa | grep crontabcrontabs-1.10-8启动与关闭[oracle@rac1 ~]$ /etc/init ...
 - sql语句  汉字转拼音首字母
			
(1)------------------------------------------------------------------------------------------------- ...
 - 不可思议的纯 CSS 实现鼠标跟随效果
			
直接进入正题,鼠标跟随,顾名思义,就是元素会跟随着鼠标的移动而作出相应的运动.大概类似于这样: 通常而言,CSS 负责表现,JavaScript 负责行为.而鼠标跟随这种效果属于行为,要实现通常都需要 ...
 - mysql优化之SQL语句优化
			
Mysql优化是一个老生常谈的问题, 优化的方向也优化很多:从架构层;从设计层;从存储层;从SQL语句层; 今天讲解一下从SQL语句层: 这个部分是程序员最容易把控的地方,也是最容易忽视的地方. 一个 ...
 - 以前的博客内容迁至CSDN,博客名不变,以后博客将在两个平台同步更新
			
为了更好的利用博客园和csdn这两个博客家园,今天把博客园中的内容迁至csdn,博客名称还是使用cooldream2009,以后的文章将同步在博客园和csdn发表,特此声明.
 - 【Linux基础】压缩和解压
			
Linux 常用的压缩与解压文件类型:.tar,.gz..tar.gz,.bz2..tar.bz2,.Z..tar.Z,.zip,.rar等. Linux 常用的压缩与解压缩命令有:tar,gzip. ...
 - python爬虫–爬取煎蛋网妹子图片
			
前几天刚学了python网络编程,书里没什么实践项目,只好到网上找点东西做. 一直对爬虫很好奇,所以不妨从爬虫先入手吧. Python版本:3.6 这是我看的教程:Python - Jack -Cui ...
 - qml demo分析(threadedanimation-线程动画)
			
一.效果预览 使用过qml的同学都知道,使用qml做动画效果是非常简单的,再也不需要像QWidget那样,自己模拟一个动画,费时又费力,往往还达不到效果.今天我们就来分析下qml的两种动画实现方式,如 ...
 - 【Android Studio安装部署系列】三十六、Android studio3.2使用过程中注意事项
			
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 Android Studio升级到3.2之后,运行旧项目的时候出现了各种情况,特此记录下. 一.打包选项多了,一般情况下选择APK即 ...