Difference between revisions of "Sum and Count"
From NoSQLZoo
m |
|||
(15 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{TopTenTips}} | {{TopTenTips}} | ||
− | <div style="height:25em"> | + | <div style="min-height:25em"> |
There are many ways to do this in MongoDB.<br/><br/> | There are many ways to do this in MongoDB.<br/><br/> | ||
<code>count()</code> is a cursor method that takes a query and returns a number equal to the amount of documents that matched the query.<br/> | <code>count()</code> is a cursor method that takes a query and returns a number equal to the amount of documents that matched the query.<br/> | ||
<code>$sum</code> is an aggregation operator availible in the <code>$group</code> stage, that can be used to both sum values and count the number of documents.<br/> | <code>$sum</code> is an aggregation operator availible in the <code>$group</code> stage, that can be used to both sum values and count the number of documents.<br/> | ||
− | mapReduce can produce a sum or a count during the results stage. | + | <code>mapReduce</code> can produce a sum or a count during the results stage by using JavaScript. |
− | |||
− | |||
− | |||
</div> | </div> | ||
+ | <div class="q nonum" data-lang="mongo"><code>.count()</code> | ||
+ | <pre class="def"><nowiki>db.world.count({"continent": "Africa"});</nowiki></pre> | ||
</div> | </div> | ||
− | <div class=q data-lang=" | + | <div class="q nonum" data-lang="mongo"><code>$sum</code> |
− | < | + | <pre class="def"><nowiki> |
− | + | db.world.aggregate([ | |
− | + | {"$group": { | |
− | + | "_id": "$continent", | |
− | + | "sum of populations": {$sum: "$population"}, | |
− | + | "count of countries": {$sum: 1} | |
− | + | }} | |
− | + | ]);</nowiki></pre> | |
− | |||
− | |||
− | </ | ||
</div> | </div> | ||
− | <div class=q data-lang=" | + | <div class="q nonum" data-lang="mongo"><code>Array.sum()</code> |
− | < | + | <pre class="def"><nowiki> |
− | + | db.world.mapReduce( | |
− | </ | + | function () { |
+ | emit(this.continent, this.population); | ||
+ | }, | ||
+ | function (k, v) { | ||
+ | return Array.sum(v); | ||
+ | }, | ||
+ | { | ||
+ | out: {inline: 1} | ||
+ | } | ||
+ | ); | ||
+ | </nowiki></pre> | ||
</div> | </div> |
Latest revision as of 16:41, 18 July 2018
There are many ways to do this in MongoDB.
count()
is a cursor method that takes a query and returns a number equal to the amount of documents that matched the query.
$sum
is an aggregation operator availible in the $group
stage, that can be used to both sum values and count the number of documents.
mapReduce
can produce a sum or a count during the results stage by using JavaScript.
.count()
db.world.count({"continent": "Africa"});
$sum
db.world.aggregate([ {"$group": { "_id": "$continent", "sum of populations": {$sum: "$population"}, "count of countries": {$sum: 1} }} ]);
Array.sum()
db.world.mapReduce( function () { emit(this.continent, this.population); }, function (k, v) { return Array.sum(v); }, { out: {inline: 1} } );