zoukankan      html  css  js  c++  java
  • MongoDB高级操作

    一、聚合操作

     常用管道:

      $group:将集合中的文档分组,可用于统计结果

      $match:过滤数据,只输出符合条件的文档

      $project:修改输入文档的结构,如重命名、增加、删除字段、创建计算结果

      $sort:将输入文档排序后输出

      $limit:限制聚合管道返回的文档数

      $skip:跳过指定数量的文档,并返回余下的文档

      $unwind:将数组类型的字段进行拆分

    常用表达式:

      $sum:计算总和,$sum:1 同count表示计数

      $avg:计算平均值

      $min:获取最小值

      $max:获取最大值

      $push:在结果文档中插入值到一个数组中

      $first:根据资源文档的排序获取第一个文档数据

      $last:根据资源文档的排序获取最后一个文档数据

    为了便于后续操作,创建以下集合:

    1.1 $group

    1.1.1 统计学生总人数、平均年龄:

    1.1.2 分别统计男生、女生的总人数:

    1.1.3 分别统计男生、女生的平均成绩:

    1.2 $match

    1.2.1 统计年龄大于15的男生、女生人数:

    1.2.2 统计成绩大于80的男生、女生人数:

    1.2.3 统计成绩低于80的人数及具体人名字:

    1.3 $sort、$skip、$limit

     统计成绩大于80的男生、女生人数,统计结果按升序排序,只显示第二条数据:

    二、索引

    2.1 索引概念

    索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件

    并选取那些符合查询条件的记录,这种扫描全集合的查询效率是非常低的。

    索引是特殊的数据结构,索引存储在一个易于遍历读取的数据集合中,索引是对数据库表中一列或多列的值

    进行排序的一种结构。

     以下创建一个测试集合,循环插入10万个文档

    2.2 查询性能测试

    使用explain()命令进行查询性能分析,其中executionTimeMillis字段表示整体查询时间,单位是毫秒

     

    2.3 索引建立

    建立索引语法:db.集合.ensureIndex({属性:1})

    1表示升序,-1表示降序

    对集合中的name字段进行建立索引

    对建立索引的字段进行查询性能测试,查询时间几乎可以忽略不计

     建立联合索引,即对多个字段同时建立索引

    后台建立索引

    在前台创建索引期间会锁定数据库,会导致其它操作无法进行数据读写,在后台创建索引是,会定期释放写锁,

    从而保证其它操作的运行,但是后台操作会在耗时更长,尤其是在频繁进行写入的服务器上。

    background可指定以后台方式创建索引,即增加 "background" 可选参数。"background" 默认值为false。

    2.4 查看索引

    语法:db.集合名称.getIndexes()

     

    2.5 删除索引

    删除指定索引:db.集合名称.dropIndex("索引名称"),索引名称可以通过getIndexes()命令查看

    删除全部索引:db.集合名称.dropIndexes()

     

  • 相关阅读:
    VUe兄弟通信
    vue组件之间的通信, 父子组件通信,兄弟组件通信
    js 数组 map方法
    vue生命周期
    使用JQuery获取被选中的checkbox的value值
    C#中struct和class的区别详解 (转载)
    C# 增加时间的三个方法
    c# 事件3
    C# 事件2
    C# 事件
  • 原文地址:https://www.cnblogs.com/heqiuyong/p/9273100.html
Copyright © 2011-2022 走看看