首頁  >  文章  >  後端開發  >  mongodb再執行group之後,取一千條數據,再怎麼limit操作,程式碼如下面描述?

mongodb再執行group之後,取一千條數據,再怎麼limit操作,程式碼如下面描述?

WBOY
WBOY原創
2016-12-01 00:26:001455瀏覽

<code>$keys = array(
    "AREA" => 1
);
$initial = array(
    "show" =>0,
    "click"=>0,
    "cost"=>0,
    
);
$reduce = "function (obj,prev)
    {
        prev.show += obj.show; 
        prev.click += obj.click;
        prev.cost +=obj.cost;
    }
";

$re = $collection->group($keys, $initial, $reduce);</code>

回覆內容:

<code>$keys = array(
    "AREA" => 1
);
$initial = array(
    "show" =>0,
    "click"=>0,
    "cost"=>0,
    
);
$reduce = "function (obj,prev)
    {
        prev.show += obj.show; 
        prev.click += obj.click;
        prev.cost +=obj.cost;
    }
";

$re = $collection->group($keys, $initial, $reduce);</code>

aggregation是你需要使用的東西。搜一下已經挺多講,這裡不細說了。從你的程式碼看應該大致是這樣的寫法

<code>db.collection.aggregate([
    {$group: {_id: {AREA: "$AREA"}, show: {$sum: "$show"}, click: {$sum: "$click"}, cost: {$sum: "$cost"}}},
    {$limit: 1000}
]);</code>

回傳是一個cursor。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn