Difference between revisions of "Sum and Count"
From NoSQLZoo
(Created page with "<pre class=setup> #ENCODING import io import sys sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-16') #MONGO from pymongo import MongoClient client = MongoClien...") |
m |
||
(17 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/> | ||
+ | <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>mapReduce</code> can produce a sum or a count during the results stage by using JavaScript. | ||
+ | </div> | ||
+ | <div class="q nonum" data-lang="mongo"><code>.count()</code> | ||
+ | <pre class="def"><nowiki>db.world.count({"continent": "Africa"});</nowiki></pre> | ||
+ | </div> | ||
+ | <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} } );