亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MongoDB > 正文

PHP中的mongodb group操作實例

2020-03-14 13:24:47
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了PHP中的mongodb group操作實例,本文給出了3個group命令的用法,需要的朋友可以參考下
 
 

緊接著上篇來,這篇主要講,mongodb的group功能,做的還是挺強大的,相當對于find(),skip(),distinct()等,用法比較復雜。

測試數據:

復制代碼代碼如下:

> db.fruit.find();  
{ "_id" : 1, "category" : "fruit", "name" : "apple" }  
{ "_id" : 2, "category" : "fruit", "name" : "peach" }  
{ "_id" : 3, "category" : "fruit", "name" : "banana" }  
{ "_id" : 4, "category" : "veggie", "name" : "corn" }  
{ "_id" : 5, "category" : "veggie", "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代碼如下:

 

復制代碼代碼如下:

$keys = array("category" => 1);  
$initial = array("items" => array(),'count'=>0);  
$reduce = "function (obj, prev) { " .  
              "prev.items.push(obj.name); " .  
              "prev.count++;" .  
          "}";  
$condition = array('condition' => array("_id" => array( '$gt' => 2)));  
$g = $collection->group($keys, $initial, $reduce, $condition);  
  
print_r($g);   //結果如下。  
  
Array  
(  
    [retval] => Array  
        (  
            [0] => Array  
                (  
                    [category] => fruit  
                    [items] => Array  
                        (  
                            [0] => banana  
                        )  
  
                    [count] => 1  
                )  
  
            [1] => Array  
                (  
                    [category] => veggie  
                    [items] => Array  
                        (  
                            [0] => corn  
                            [1] => broccoli  
                        )  
  
                    [count] => 2  
                )  
        )  
  
    [count] => 3  
    [keys] => 2  
    [ok] => 1  
)  

 

3、利用aggregate group功能,也挺強大

 

復制代碼代碼如下:

> db.fruit.aggregate([  
                     { $match: { _id: {$gt:0} } },  
                     { $group: { _id: "$category", count: { $sum: 1 } } },  
                     { $sort: { count: -1 } }  
                   ]);  
{ "_id" : "fruit", "count" : 3 }  
{ "_id" : "veggie", "count" : 2 }  

 

php代碼如下:

復制代碼代碼如下:

$cond = array(  
    array(  
        '$match' => array('_id' => array('$gt' => 0)),  
    ),  
    array(  
        '$group' => array(  
            '_id' => '$category',  
           'count' => array('$sum' => 1),  
        ),  
    ),  
    array(  
        '$sort' => array("count" => -1),  
    ),  
);  
$result = $collection->aggregate($cond);  
print_r($result);    //結果如下:  
  
Array  
(  
    [result] => Array  
        (  
            [0] => Array  
                (  
                    [_id] => fruit  
                    [count] => 3  
                )  
  
            [1] => Array  
                (  
                    [_id] => veggie  
                    [count] => 2  
                )  
  
        )  
  
    [ok] => 1  
)  

 

mongodb 的select 操作有很多,在這里,只是說了一些常用的功能。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91免费看片在线| 欧美激情一二三| 国产最新精品视频| 人人做人人澡人人爽欧美| 久久久噜噜噜久久久| 国产成+人+综合+亚洲欧洲| 国内精久久久久久久久久人| 国产精品美腿一区在线看| 欧美香蕉大胸在线视频观看| 国产日韩在线亚洲字幕中文| 岛国av一区二区在线在线观看| 日韩视频免费大全中文字幕| 国产xxx69麻豆国语对白| 精品久久久国产精品999| 亚洲国产精品va在线观看黑人| 亚洲国产精彩中文乱码av在线播放| 欧美在线视频免费播放| 欧美成人精品一区二区三区| 国产精品久久99久久| 国产主播欧美精品| 欧美成人中文字幕| 欧美体内谢she精2性欧美| 两个人的视频www国产精品| 亚洲大胆人体av| 91手机视频在线观看| 91性高湖久久久久久久久_久久99| 亚洲欧美另类自拍| 欧美日韩成人在线播放| 国内精品久久久久影院 日本资源| 欧美最猛性xxxx| 久久久久久18| 欧美在线视频在线播放完整版免费观看| 中文字幕日本精品| 国产+成+人+亚洲欧洲| 久久久精品国产一区二区| 精品国产91久久久| 最近2019中文免费高清视频观看www99| 亚洲欧美色图片| 中文字幕久热精品视频在线| 日韩a**中文字幕| 日韩在线播放一区| 国语自产精品视频在免费| 久久久久久久久爱| 亚洲欧美成人一区二区在线电影| 日韩在线观看高清| 亚洲裸体xxxx| 日韩一区视频在线| 日韩电影免费在线观看中文字幕| 黑人巨大精品欧美一区二区三区| 国产成人精品优优av| 欧美视频不卡中文| 欧美日韩激情视频8区| 久久好看免费视频| 久久影院模特热| 日韩免费高清在线观看| 欧美限制级电影在线观看| 亚洲人成电影网站色www| 日韩在线视频观看| 久久中文字幕在线视频| 亚洲电影成人av99爱色| 欧美xxxwww| 一区二区国产精品视频| 日韩中文字幕亚洲| 91欧美精品午夜性色福利在线| 欧美在线视频导航| 欧美成人精品一区| 亚洲精品suv精品一区二区| 亚洲精品98久久久久久中文字幕| 中文日韩在线视频| 欧美日韩国产成人在线| 国产日韩欧美影视| 亚洲美女喷白浆| 久久国产精品电影| 亚洲欧美综合精品久久成人| 韩国福利视频一区| 欧美大片大片在线播放| 亚洲欧美中文字幕在线一区| 亚洲男人天堂网| 欧美日韩第一页| 欧美理论电影在线观看| 北条麻妃一区二区三区中文字幕| 欧美成人精品一区二区| 欧美另类极品videosbest最新版本| 欧美在线亚洲在线| 亚洲夜晚福利在线观看| 欧美激情精品久久久久久免费印度| 亚洲在线免费视频| 成人h猎奇视频网站| 97国产精品免费视频| 日韩精品中文字幕视频在线| 91精品视频大全| 日韩欧美国产成人| 成人高清视频观看www| 91精品国产91久久久久久吃药| 欧美高清视频免费观看| 国产精品中文字幕在线| 国产精品三级美女白浆呻吟| 国内精品视频一区| 亚洲欧美日韩中文在线| zzijzzij亚洲日本成熟少妇| 欧美在线播放视频| 91中文字幕一区| 成人av电影天堂| 欧美亚洲日本网站| 4438全国亚洲精品在线观看视频| 国产精品久久久久久久久久久久| 亲子乱一区二区三区电影| 人体精品一二三区| 性欧美视频videos6一9| 亚洲色图第三页| 久国内精品在线| 久久精品99久久香蕉国产色戒| 久久久久久久久久久国产| 亚洲开心激情网| 国产精选久久久久久| 色婷婷av一区二区三区在线观看| 国产精品男人的天堂| 成人激情视频在线| 91最新国产视频| 日韩激情视频在线| 日韩在线观看高清| 精品日韩视频在线观看| 久久精品99国产精品酒店日本| 亚洲最大福利视频网站| 国产精品夫妻激情| 欧美丝袜美女中出在线| 久久久这里只有精品视频| 欧美中文字幕视频在线观看| 97在线观看视频| 欧美成人免费在线观看| 久久香蕉国产线看观看网| 亚洲激情视频网站| 国产成人a亚洲精品| 亚洲国产女人aaa毛片在线| 国产精品视频自拍| 在线视频中文亚洲| 欧美在线视频免费播放| 一区三区二区视频| 色综合色综合久久综合频道88| 国产精品一区二区av影院萌芽| 日韩精品免费观看| 97婷婷大伊香蕉精品视频| 国产午夜精品视频| 久久久免费观看| 久久理论片午夜琪琪电影网| 欧美视频在线观看免费| 91免费视频网站| 91精品国产乱码久久久久久蜜臀| 青青青国产精品一区二区| 亚洲嫩模很污视频| 97久久精品在线| 国产精品jizz在线观看麻豆| 国产一区二区三区在线| 国产精品久久久久久av福利软件| 日产精品99久久久久久| 久久久久久久久国产| 亚洲黄在线观看| 欧美日韩免费一区| 欧美乱大交xxxxx另类电影| 伊人伊成久久人综合网小说| 国产精品亚洲自拍| 欧美视频中文字幕在线| 国内精品一区二区三区四区| 国产999精品久久久|