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

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

  • 相关阅读:
    SQL Join的一些总结
    大型网站架构演变和知识体系
    从零开始学习jQuery (九) jQuery工具函数
    对称加密(1) 对称加密基本原理
    javascript 几个字符串截取函数
    .net 登录博客园 并且发表文章一篇
    304 Not Modified 与 IfModifiedSince 及 CacheControl
    代码设置输出缓存头的一些问题记录
    js事件冒泡,默认行为,阻止冒泡
    http协议中的一些基础知识
  • 原文地址:https://www.cnblogs.com/00986014w/p/8418598.html
Copyright © 2011-2022 走看看