条件操作符: 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. 使用PixiJS做一个小游戏

    PixiJS PixiJS使用WebGL,是一个超快的HTML5 2D渲染引擎.作为一个Javascript的2D渲染器,Pixi.js的目标是提供一个快速的.轻量级而且是兼任所有设备的2D库. 官方 ...

  2. Java虚拟机二:使用jvisualvm工具远程监控tomcat内存

    jdk中自带了很多工具可以用于性能分析,位于jdk的bin目录下,jvisualvm工具可以以图形化的方式更加直观的监控本地以及远程的java进程的内存占用,线程状态等信息. 一.配置tomcat 在 ...

  3. SQL Server内幕之数据页

    数据页是包含已添加到数据库表中的用户数据的结构. 如前所述, 数据页有三种, 每个都以不同的格式存储数据. SQL server 有行内数据页.行溢出数据页和 LOB 数据页. 与 SQL serve ...

  4. 设计模式之行为类模式PK

    行为类模式包括: 责任链模式 命令模式 解释器模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 模板方法模式 访问者模式 行为型模式涉及到算法和对象间职责的分配 行为类模式关注 ...

  5. Vue.js 学习笔记 第6章 表单与v-model

    本篇目录: 6.1 基本用法 6.2 绑定值 6.3 修饰符 表单类控件承载了一个网页数据的录入与交互,本章将介绍如何使用指令v-model完成表单的数据双向绑定. 6.1 基本用法 表单控件在实际业 ...

  6. Redis内存模型(2):存储细节

    1. 概述 先看一下执行set hellow world时,所涉及的数据模型: (1)dictEntry:Redis是Key-Value数据库,因此对每个键值对都会有一个dictEntry,里面存储了 ...

  7. 关于Python中读取写入文件并进行文件与用户交互的操作

    一.提前知识点 在python中是同样和其他语言一样可以进行文件的读取写入操作,值得注意的是,Python中打开文件读取的方式有几种,分别是以下几种: f = open('username.txt') ...

  8. c/c++ 动态库与静态库的制作和使用

    静态库的用法 静态库的文件名 libxxx.a -->对应windows的.lib文件 做静态库的命令: ar rcs libxxx.a file1.o file2.o file.o 使用静态库 ...

  9. June 30th. 2018, Week 26th. Saturday

    Curiosity is the wick in the candle of learning. 如果学习是一根蜡烛,那好奇心就是烛芯. From William Arthur Ward. Pleas ...

  10. Ambari安装及自定义service初步实现

    Ambari安装 1 Ambari简介 Apache Ambari项目的目的是通过开发软件来配置.监控和管理hadoop集群,以使hadoop的管理更加简单.同时,ambari也提供了一个基于它自身R ...