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  
        }  
    
  • 相关阅读:
    架构之道(5)
    项目的命名规范
    semantic框架
    jquery.timepicker.js
    jquery.marquee.js
    CkEditor
    快速测试,其实没什麽大不了
    架构之道(4)
    架构之道(3)
    子网划分与子网掩码
  • 原文地址:https://www.cnblogs.com/timelesszhuang/p/4300310.html
Copyright © 2011-2022 走看看