zoukankan      html  css  js  c++  java
  • 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

    详细资料

  • 相关阅读:
    数据库相关(转)
    sql之left join、right join、inner join的区别
    PHP面试编程
    实验6 shell程序设计一(1)
    实验7 shell程序设计二(1)
    Linux软件安装管理
    Linux常用命令总结
    合唱团
    linux课后作业1
    linux网络服务实验
  • 原文地址:https://www.cnblogs.com/hexi707/p/8555711.html
Copyright © 2011-2022 走看看