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  
        }  
    
  • 相关阅读:
    Docker-网络命名空间
    Docker-为镜像添加SSH服务(CentOS)
    Docker-Dockerfile方式创建镜像
    Docker-Dockerfile方式创建数据卷容器
    MySQL-存储过程批量插入数据
    CentOS 升级内核
    集合-ConcurrentHashMap-jdk1.7
    Redis Lua脚本
    javascript中的string对象
    初识 控制台
  • 原文地址:https://www.cnblogs.com/timelesszhuang/p/4300310.html
Copyright © 2011-2022 走看看