zoukankan      html  css  js  c++  java
  • mongo排序,分页和聚合

    一 MongoDB排序

    准备数据

    use my_test1
    
    db.c1.insert({_id:1,name:"a",sex:1,age:1})
    db.c1.insert({_id:2,name:"a",sex:1,age:2})
    db.c1.insert({_id:3,name:"b",sex:2,age:3})
    db.c1.insert({_id:4,name:"c",sex:2,age:4})
    db.c1.insert({_id:5,name:"d",sex:2,age:5})
    db.c1.find()

    clipboard

    语法:

    db.集合名.find().sort({域名: 1/-1})    // 1:升序  2:降序

    二 MongoDB分页

    语法:

    db.集合名.find().sort().skip(数字).limit(数字)

    说明: skip跳过指定数量的数据

    limit 限制查询的数量

    练习:

    1、降序查询两条数据

    db.c1.find().sort({age:-1}).skip(0).limit(2)

    clipboard

    2、降序查询 跳过两条并查询两条

    db.c1.find().sort({age:-1}).skip(2).limit(2)

    clipboard

    总结

    db.集合名.find()

    sort(列:1/-1) 排序

    skip(数字) 跳过指定数量

    limit(数字) 限制查询的条数

    count() 统计查询到的数据的数量

    三、MongoDB聚合查询

    语法:

    db.集合名称.aggregate([ {管道: {表达式}}, ... ])

    常用管道

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

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

    $sort 聚合数据进一步排序

    $skip 跳过指定文档数

    $limit 限制集合数据返回文档数

    常用表达式

    $sum 总和 $sum:1 同count表示统计

    $avg 平均

    $min最小值

    $max 最大值

    demo

    测试数据

    db.c1.insert({_id:1,name:"a",sex:1,age:1})
    db.c1.insert({_id:2,name:"a",sex:1,age:2})
    db.c1.insert({_id:3,name:"b",sex:2,age:3})
    db.c1.insert({_id:4,name:"c",sex:2,age:4})
    db.c1.insert({_id:5,name:"d",sex:2,age:5})

    1)统计男生,女生的总年龄

    db.c1.aggregate([
        {
            $group:{
                _id: "$sex", // _id:分组的字段
                rs: {$sum: "$age"} // rs: 统计后数据的别名
            }
        }
    ])

    2)统计男生,女生的总人数

    db.c1.aggregate([
        {
            $group:{
                _id:"$sex",
                rs:{$sum:1}
            }
        }
    ])

    3) 求学生总数和平均年龄

    db.c1.aggregate([
        {
            $group:{
                _id:null,
                totalNum:{$sum:1},
                avgAge: {$avg:"$age"}
            }
        }
    ])

    4)查询男生,女生人数并升序排列

    db.c1.aggregate([
        {
            $group:{
                _id:"$sex",
                rs:{$sum:1}
            }
        },
        {
            $sort:{rs:1}
        }
    ])
  • 相关阅读:
    kotlin中值范围
    kotlin中集合
    kotlin数据解构
    Java 8 Lambda 表达式
    kotlin 之内联函数
    kotlin之函数的范围和泛型函数
    kotlin函数的参数和返回值
    kotlin 之单表达式函数
    kotlin使用中辍标记法调用函数
    kotlin之函数的基本用法
  • 原文地址:https://www.cnblogs.com/houchen/p/13946774.html
Copyright © 2011-2022 走看看