zoukankan      html  css  js  c++  java
  • MongoDB 快速入门--中级

    索引

    ensureIndex 用来创建索引,需要注意的就是一个集合最多也就64个索引

    如果没加所有就是表扫表,速度很慢,

    当然如果索引的键有多个,就必须考虑顺序

    拓展索引

    同样的也可以为内嵌文档

    建立索引

    当然我们也可以为索引指定名称,索引呢,索引的语法就是

    db.collection.ensureIndex({字段:方向(1,-1)},
    {"name":索引名称,
     unique:boolean 是否唯一,
     dropDupes:boolean 是否删除重复
    })

    explain,himt(强制使用某个索引)

     地理空间索引

    只有满足一个键对应一个包含两个键的数组,或包含两个键的文档时就满足条件

    然后相对应的就是查询了,$near:[]

     

     聚合

     count([{query}])

    distinct去除重复的值

    group

    使用  aggregate指令

    这个聚合总体来说和SQL的聚合是差不了多少的,上图

    常用的聚合表达式:

    同时aggregate还有一个管道的概念,就是将上一次处理的结果作为下一次的参数进行处理

     

    在上面我们可以看到是先match,然后再group的,这就是一个管道,常用操作如下:

    • $project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。
    • $match:用于过滤数据,只输出符合条件的文档。$match使用MongoDB的标准查询操作。
    • $limit:用来限制MongoDB聚合管道返回的文档数。
    • $skip:在聚合管道中跳过指定数量的文档,并返回余下的文档。
    • $unwind:将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值。
    • $group:将集合中的文档分组,可用于统计结果。
    • $sort:将输入文档排序后输出。
    • $geoNear:输出接近某一地理位置的有序文档。

    MapReduce

    db.runCommand(
     { mapreduce : 字符串,集合名,
       map : 函数,见下文
       reduce : 函数,见下文
       [, query : 文档,发往map函数前先给过渡文档]
       [, sort : 文档,发往map函数前先给文档排序]
       [, limit : 整数,发往map函数的文档数量上限]
       [, out : 字符串,统计结果保存的集合]
       [, keeptemp: 布尔值,链接关闭时临时结果集合是否保存]
       [, finalize : 函数,将reduce的结果送给这个函数,做最后的处理]
       [, scope : 文档,js代码中要用到的变量]
       [, jsMode : 布尔值,是否减少执行过程中BSON和JS的转换,默认true] //注:false时 BSON-->JS-->map-->BSON-->JS-->reduce-->BSON,可处理非常大的mapreduce,<br>                                    //true时BSON-->js-->map-->reduce-->BSON
       [, verbose : 布尔值,是否产生更加详细的服务器日志,默认true]
     }
    );

    直接上图吧:

    这里的key,values就对应了上面this.name和this.socr

     

    Hold on, everything is possible.
  • 相关阅读:
    分布式架构总汇【转】
    spring注解
    lombok安装和使用
    dubbo配置
    关于dubbo的负载均衡
    maven工作的过程
    android基础---->子线程更新UI
    JavaScript中有时候需要获取当前的时间戳
    Ubuntu 安装mysql
    nodejs 语法很特别的地方
  • 原文地址:https://www.cnblogs.com/student-note/p/6193405.html
Copyright © 2011-2022 走看看