zoukankan      html  css  js  c++  java
  • 试水mongodb er

    1)data ready

    var a = {"name":"zhekou","CharDate":"2015-12-01","Detail":
    [{"DetailID":1,"Abstract":"1a","LenderAmt":20,"DebtAmt":0,"BaseAmt":20},
    {"DetailID":2,"Abstract":"2a","LenderAmt":3,"DebtAmt":0,"BaseAmt":3},
    {"DetailID":3,"Abstract":"3a","LenderAmt":4,"DebtAmt":0,"BaseAmt":4}]
    }

    db.Voucher.insert(a);

    var a = {"name":"zhekou","CharDate":"2015-12-01","Detail":
    [{"DetailID":4,"Abstract":"1a","LenderAmt":56,"DebtAmt":0,"BaseAmt":56},
    {"DetailID":5,"Abstract":"2a","LenderAmt":34,"DebtAmt":0,"BaseAmt":34},
    {"DetailID":6,"Abstract":"3a","LenderAmt":87,"DebtAmt":0,"BaseAmt":87}]
    }
    db.Voucher.insert(a); 

    2)function

    db.Voucher.aggregate(
    {$unwind:"$Detail"},
    {$match:{"Detail.Abstract":/a/}},
    {$project:{ _id:0, amount: "$Detail.BaseAmt",Abstract:"$Detail.Abstract"}},
    {$group:{_id:"$Abstract",total:{$sum:"$amount"}}}
    )

    2_1)

    $match:过滤后再分组,Detail.Abstract,虽然用了unwind打开,但是还是要用Detail.前缀引用

    $project:重命名

    $:引用

    $group:分组,_id:分组by**,$sum:相加

    3)result

    /* 0 */
    {
    "result" : [
    {
    "_id" : "3a",
    "total" : 91
    },
    {
    "_id" : "2a",
    "total" : 37
    },
    {
    "_id" : "1a",
    "total" : 76
    }
    ],
    "ok" : 1
    }

  • 相关阅读:
    Json基本使用方法
    Java编程思想(20170818)
    FireFox加载Lodop控件
    泛型
    设计模式原则
    设计模式
    设计模式3.1:简单工厂模式
    设计模式2,模板方法
    spring -- AutoCloseable 作用
    spring 源码方法概要
  • 原文地址:https://www.cnblogs.com/Ellfelo/p/aggregate_unwind.html
Copyright © 2011-2022 走看看