zoukankan      html  css  js  c++  java
  • MongoDB学习--高级查询 [聚合Group]

    Group大约需要一下几个参数。

    1. key:用来分组文档的字段。和keyf两者必须有一个
    2. keyf:可以接受一个javascript函数。用来动态的确定分组文档的字段。和key两者必须有一个
    3. initial:reduce中使用变量的初始化
    4. reduce:执行的reduce函数。函数需要返回值。
    5. cond:执行过滤的条件。
    6. finallize:在reduce执行完成,结果集返回之前对结果集最终执行的函数。可选的

    测试数据

        //测试的数据
        db.stocks.insert({"day": "2010/10/03", "time": "2010/10/03 03:47:01 GMT-400", "price": 4.23});  
        db.stocks.insert({"day": "2010/10/04", "time": "2010/10/04 11:28:39 GMT-400", "price": 4.27});  
        db.stocks.insert({"day": "2010/10/03", "time": "2010/10/03 05:00:23 GMT-400", "price": 4.10});  
        db.stocks.insert({"day": "2010/10/06", "time": "2010/10/06 05:27:58 GMT-400", "price": 4.30});  
        db.stocks.insert({"day": "2010/10/04", "time": "2010/10/04 08:34:50 GMT-400", "price": 4.01});  
    

    测试要执行的GROUP程序代码

    db.runCommand({"group": {  
        "ns": "stocks",  
        "key": "day",  
        "initial": {"time": 0},  
        "$reduce": function(doc, prev) {  
            if (doc.time > prev.time) {  
                prev.price = doc.price;  
                prev.time = doc.time;  
            }  
        }  
    }}); 
    

    执行之后的结果

        {  
            "retval" : [  
                {  
                    "time" : 0  
                }  
            ],  
            "count" : 5,  
            "keys" : 1,  
            "ok" : 1  
        }  
    
  • 相关阅读:
    P1361 小M的作物 【网络流】【最小割】
    餐巾计划问题 【网络流24题】【费用流】【zkw】
    P1231 教辅的组成 【网络流】【最大流】
    Rikka with coin 思维题
    线段树模板新
    AC自动机 洛谷P3966 单词
    AC自动机 洛谷P5357 模板
    AC自动机 洛谷P3796
    AC自动机 洛谷P3808 模板
    KMP 洛谷P3375
  • 原文地址:https://www.cnblogs.com/timelesszhuang/p/4300310.html
Copyright © 2011-2022 走看看