• mongodb 系列 ~ 聚合语法


    1  基本语法    
        db.collection.aggregate( [ { }, … ] )
    2 内置函数~$match
        作用:条件匹配过滤
        案例: db.articles.aggregate([{$match:{author:"dave"}}]) 过滤 author:"dave"的文档
    3 内置函数~$project
       作用:用来重构返回值 还可以给返回结果增加字段
       案例:db.books.aggregate([{$project:{title:1,author:1}}])
    4 内置函数~$unwind
       作用 将数组成员分别拆成单挑记录
       标准语法
        { $unwind: { path: <field path>, 数组名 includeArrayIndex: <string>, 数据下标名 preserveNullAndEmptyArrays: <boolean> 对于缺失/null情况 默认为false }
        案例
        1 { "_id" : 1, "item" : "ABC1", sizes: [ "S", "M", "L"] }
        2 db.inventory.aggregate( [ { $unwind : "$sizes" } ] )
        3 { "_id" : 1, "item" : "ABC1", "sizes" : "S" }->可以看到拆成三条 { "_id" : 1, "item" : "ABC1", "sizes" : "M" } { "_id" : 1, "item" : "ABC1", "sizes" : "L" }
      5 内置函数~$lookup
        作用 连表查询
       标准语法
       {
       $lookup:
       {
        from: 目标表,
        localField: 本地表字段
        foreignField: 连表字段
        as: 自定义输出字段名
        }
       }
    6 内置函数~count
       作用 计算上述结果然后赋予字段
       案例:
      db.scores.aggregate(
      [
      {
      $match: {
      score: {
      $gt: 80
      }
      }
     },
    {
    $count: "passing_scores"
    }
    ]
    )
    过滤大于80分的记录总数 数量给”passing_scores”这个字段。
     
    7 pipeline
    作用:对mongodb的collection进行运算,筛选,截取,排序操作
    pipeline = [
    {$project:?},
    {$match:?},
    {$group:?},
    {$sort :?},
    {$limit:?},
    {$skip :?},
    {$unwind:?},
    {$redact:?},
    {$sample:?},
    {$out:?},
    ]
    db.colliction.aggregate(pipeline)
     
     

  • 相关阅读:
    如何通过setTimeout理解JS运行机制详解
    css3系列之伪类选择器
    css3系列之属性选择器
    css3系列之伪元素选择器
    css3系列之兄弟选择器
    作为了解系列之 预处理器 和 后处理器
    网络系列之跨域
    网络系列之 cookie增删改查(封装)
    网络系列之 jsonp 百度联想词
    网络系列之 什么是ajax 封装ajax
  • 原文地址:https://www.cnblogs.com/danhuangpai/p/15133655.html
Copyright © 2020-2023  润新知