条件操作符: 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)的更多相关文章

  1. MongoDB自学笔记2---1.2 初识MongoDB

    1.2.1MongoDB简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之 ...

  2. MongoDB自学笔记1----1.1 NoSQL是什么?

    第一章 走进MongoDB 1.1NoSQL是什么?       1.1.1NoSQL简介        对于不了解NoSQL的人都会认为NoSQL为No SQL,即不是SQL.但是这种理解是错误的, ...

  3. MongoDB自学(4)

    超过存储上限或记录条数删除最早的记录:db.createCollection("集合名",{capped:true,size:1024,max:100})注解:指定集合名的最大记录 ...

  4. MongoDB自学(3)

    MongoDB关系:MongoDB的关系表示多个文档之间在逻辑上的相互联系.文档之间可以通过嵌入和引用来建立联系.关系:1:11:NM:1M:N 嵌入式:{ id:11;name:嘻嘻嘻;addres ...

  5. mongodb自学

    http://www.runoob.com/mongodb/mongodb-databases-documents-collections.html

  6. MongoDB自学日记3——架构及HA

    在对mongoDB的操作有了一定基础后,终于可以扯扯HA和架构这两个高大上的概念了.在这之前当然还得弄清楚mongoDB的Key feature:Sharding. 1. Sharding Shard ...

  7. MongoDB自学日记2——权限

    首先应该明确的是为什么要学MongoDB.OK,如果是仅仅出于对于流行技术的原始兴趣,可能并不能深入学习,还必须有应用需求.刚开始学习MongoDB,因为以前对其它数据库的了解也不是特别深入,所以许多 ...

  8. MongoDB自学日记1——基本操作

    作为一个做底层及后台研发的,最近对NoSQL却产生了浓厚的兴趣,加入了一个DBA群,据说北京排的上号的DBA都在里面,然而里面基本都是Oracle系的,MySQL和MongoDB系的少之又少.学习靠不 ...

  9. MongoDB自学------(1)MongoDB4.0安装

    一.环境 操作系统 安装包 安装方式 Ubuntu18.04 mongodb4.0 apt安装 Ubuntu18.04 mongodb4.0 docker安装 二.apt安装 sudo apt-key ...

随机推荐

  1. MongoDB之基本操作与日常维护

    MongoDB基本操作 MongoDB的基本操作主要是对数据库.集合.文档的操作,包括创建数据库.删除数据库.插入文档.更改文档.删除文档.和查询文档. 操作 描述 show dbs 查看当前实例下的 ...

  2. 文本输入框input text输入字母自动转大写

    现在需要把一个input输入框内的字母自动转变为大写. 查了下资料,目前收集到的方法有两种: 使用JavaScript,在input标签添加onkeyup方法,将字符转为大写. <input n ...

  3. OpenProject基础使用介绍

            所有的活动都可以看做一个项目来管理.在企业中更是这样. 所以项目管理平台,对于任何一个高科技企业来讲都是必不可少的. OpenProject(以下简称OP)就是一个不错的项目管理平台, ...

  4. Android之Retrofit详解(转载)

    说明:该文章转载于https://www.jianshu.com/p/a3e162261ab6 前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下 ...

  5. 数据库艰难求生之路(基础:增删改查)part2

    一.数据库查询 由于这个点的东西实在是多的,我就和题目,知识点一起演示. 首先是创建数据库: create database ExampleInfo --创建数据库 use ExampleInfo - ...

  6. Devops step by step

    接着上次分享的devops历程[Followme Devops实践之路], 大家希望能够出一个step by step手册, 那今天我就来和手把手来一起搭建这么一套环境, 演示整个过程! 实验环境需要 ...

  7. ASP.NET的版本?

    问题源于这么一本书: <ASP.NET 4 解密(卷1)>,这本书大约是六七年前买的了,根据其名字,它讲述的是ASP.NET 4,那么ASP.NET现在究竟是什么版本?与.NET Fram ...

  8. 双因素认证(2FA)教程

    所谓认证(authentication)就是确认用户的身份,是网站登录必不可少的步骤. 密码是最常见的认证方法,但是不安全,容易泄露和冒充. 越来越多的地方,要求启用 双因素认证(Two-factor ...

  9. lambda和匿名内部类使用外部变量为什么要语义final?

    今天群里讨论java的lambda实现. 后来不断衍生谈到了为什么lambda和匿名内部类只能使用语义final的外部变量. 最开始以为是java的lambda实现问题,编译期魔法会把外部引用作为参数 ...

  10. 微信小程序初体验,入门练手项目--通讯录,后台是阿里云服务器(一)

    内容: 一.前言 二.相关概念 三.开始工作 四.启动项目起来 五.项目结构 六.设计理念 七.路由 八.部署线上后端服务 同步交流学习社区: https://www.mwcxs.top/page/4 ...