加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

PHP中的mongodb group操作实例

发布时间:2020-05-26 13:28:46 所属栏目:PHP 来源:互联网
导读:紧接着上篇来,这篇主要讲,mongodb的group功能,做的还是挺强大的,相当对于find(),skip(),distinct()等,用法比较复杂。

紧接着上篇来,这篇主要讲,mongodb的group功能,做的还是挺强大的,相当对于find(),skip(),distinct()等,用法比较复杂。

测试数据:
复制代码 代码如下:
> db.fruit.find(); 
{ "_id" : 1,"category" : "fruit","name" : "apple" } 
{ "_id" : 2,"name" : "peach" } 
{ "_id" : 3,"name" : "banana" } 
{ "_id" : 4,"category" : "veggie","name" : "corn" } 
{ "_id" : 5,"name" : "broccoli" } 

1、根据category分组
复制代码 代码如下:
> db.fruit.group( 
       { 
         key: { category: 1}, 
         reduce: function(obj,prev) { 
                     prev.items.push(obj.name); 
                 }, 
         initial: { items : [] } 
       } 
    ); 

        { 
                "category" : "fruit", 
                "items" : [ 
                        "apple", 
                        "peach", 
                        "banana" 
                ] 
        }, 
        { 
                "category" : "veggie", 
                "items" : [ 
                        "corn", 
                        "broccoli" 
                ] 
        } 
]

php代码如下:
复制代码 代码如下:
$keys = array("category" => 1); 
$initial = array("items" => array()); 
$reduce = "function (obj,prev) { prev.items.push(obj.name); }"; 
$g = $collection->group($keys,$initial,$reduce); 
 
print_r($g);   //结果如下。 
 
Array 

    [retval] => Array 
        ( 
            [0] => Array 
                ( 
                    [category] => fruit 
                    [items] => Array 
                        ( 
                            [0] => apple 
                            [1] => peach 
                            [2] => banana 
                        ) 
 
                ) 
 
            [1] => Array 
                ( 
                    [category] => veggie 
                    [items] => Array 
                        ( 
                            [0] => corn 
                            [1] => broccoli 
                        ) 
 
                ) 
 
        ) 
 
    [count] => 5 
    [keys] => 2 
    [ok] => 1 
)

2、根据category来分组,并统计count

复制代码 代码如下:
> db.fruit.group( 
           { 
             key: { category: 1}, 
             cond: { _id: { $gt: 2 } }, 
             reduce: function(obj,prev) { 
                prev.items.push(obj.name); 
                prev.count++; 
             }, 
             initial: { items : [],count:0} 
           } 
        ); 

    { 
        "category" : "fruit", 
        "items" : [ 
            "banana" 
        ], 
        "count" : 1 
    }, 
    { 
        "category" : "veggie", 
        "items" : [ 
            "corn", 
            "broccoli" 
        ], 
        "count" : 2 
    } 
]

php代码如下:

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读