zoukankan      html  css  js  c++  java
  • MongoDB聚合基本操作

    聚合是指对取出的数据进行一系列的处理和分析,具体操作用到aggregate方法和管道操作符。

    下面列出常用的几种管道操作符:

    1. $match

    用于筛选记录:

    > db.collection.aggregate({'$match': {'key': 'value'}})

    2. $project

    用于选择出想要的字段:

    > db.collection.aggregate({'$project': {'author': 1, '_id': 0}})

    也可以进行重命名后显示,注意要将改名前的字段去掉:

    > db.collection.aggregate({'$project': {'userid': '$_id', '_id': 0}})

    $project也可以接受表达式,如下面的project返回两个值之和,记录为total字段:

    > db.collection.aggregate({'$project': {'total': {'$add': ['v1', 'v2']}}})

    类似的数学计算操作符还有$subtract, $multiply, $divide, $mod等。

    下面的project会将记录中的月份提取出来:

    > db.collection.aggregate({'$project': {'hiremonth': {'$month': '$hiredate'}}})

    也可以对时间做减法求出时长:

    > db.collection.aggregate({'$project': {'duration': {'$subtract': [{'$year': new Date()}, {'$year': '$hiretime'}]}}})

    字符串操作符包括:

    $substr(用于截取字符串)、$concat(用于拼接字符串)、$toLower、$toUpper

    另外,还有两个控制操作符:

    $cond用于条件判断,格式是:'$cond' : [booleanexpr, trueexpr, falseexpr],当booleanexpr判断为真时,执行第一个表达式,否则执行第二个表达式。

    $ifNull用于执行替补命令,格式是:'$ifNull': [expr, replaceexpr],当expr不为空时执行expr,否则执行后面一个表达式。

    3. $group

    $group对记录按照指定字段进行分组。比如下面的例子,分组后同时返回最高和最低的分数:

    > db.collection.aggregate({'$group': {'_id': '$grade', 'lowest': {'$min': '$score'}, 'highest': {'$max': '$score'}}})

    4. $sort、$limit、$skip

    用于排序、限制返回数量和跳过记录数量。

  • 相关阅读:
    DataTable Clone()方法和Copy()方法的区别
    element-ui的使用
    解决VS Code 软件PowerShell执行策略问题
    Vue-Router
    Vue的生命周期
    vue-cli脚手架和webpack
    Vue组件
    Vue基本用法和指令
    ES6常用语法
    前端-Bootstrap框架
  • 原文地址:https://www.cnblogs.com/00986014w/p/8418598.html
Copyright © 2011-2022 走看看