手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2013年03月21日的文章

mongo中的group by

在mysql里面,我们偶尔会有这样的sql出现:
select userid,count(userid) as cnt from xxxxxtable group by userid;

这样的sql在mongo里怎么实现呢?其实也相对比较简单

PHP代码
  1. <?php  
  2. $mongo = new Mongo();  
  3. $mongo->selectDB('xxx');//库  
  4. $collection = $mongo->selectCollection('表');  
  5.   
  6. $field = array('userid'=>1);  
  7. $cnt = array('cnt'=>0);  
  8. $result = $collection->group($field,$cnt,"function(obj,pref){pref.cnt++;}");  

打印出来的结果也很方便识别:

XML/HTML代码
  1. Array  
  2. (  
  3.     [retval] => Array  
  4.         (  
  5.             [0] => Array  
  6.                 (  
  7.                     [userid] => 11111  
  8.                     [cnt] => 2  
  9.                 ) 
  10.             //省略
  11.         )  
  12.   
  13.     [count] => 21  
  14.     [keys] => 11  
  15.     [ok] => 1  
  16. )  

果然轻轻松松啊

Tags: mongo, mysql