Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man tausende Daten abrufen und den Vorgang einschränken, nachdem mongodb die Gruppe erneut ausgeführt hat?

Wie kann man tausende Daten abrufen und den Vorgang einschränken, nachdem mongodb die Gruppe erneut ausgeführt hat?

WBOY
WBOYOriginal
2016-12-01 00:26:001456Durchsuche

<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>

Antwortinhalt:

<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 ist das, was Sie verwenden müssen. Durch die Suche wurde schon viel darüber gesagt, daher werde ich hier nicht näher darauf eingehen. Nach Ihrem Code zu urteilen, sollte er ungefähr so ​​geschrieben sein

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

Die Rückkehr ist ein Cursor.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn