2013-11-14 36 views
0

我有2个集合,类别和产品。 每个产品都有一个category_id。我想列出类别名称与产品数量... 我已经做了1循环和2查询。但我想把它作为一个单一的查询。 如何在mongo数据库中生成?mongo db - 用另一个集合的数量获取表格记录

public function GetCategories(){ 

    $data = array(); 

    $this->cimongo->where(array('status'=>'1')); 
    $query = $this->cimongo->get('category'); 
    foreach($query->result_array() as $category){ 
     $data[] = array(
      'keyword'  => $category['keyword'], 
      'name'   => $category['name'], 
      'total'   => $this->GetTotalWordsByCategoryId($category['_id']) 
     ); 
    } 
    return $data; 
} 
+1

您无法使用一个查询查询两个集合。 – WiredPrairie

回答

1

绝对没有什么可以将其作为单个查询。 Mongodb没有连接,因此如果你想把它作为一个查询,你必须在第一个存储关于第二个集合的信息。

+0

好,我们不能用map缩小吗? – balaphp

+1

不,mapreduce也在收集级别上运行。所有连接都应该在应用程序层完成。 –