MAPREDUCE Elite: Difference between revisions
From NoSQLZoo
No edit summary |
No edit summary |
||
| Line 22: | Line 22: | ||
<div class=q data-lang="py3">The <code>commodities</code> collection contains the name and average price of each commodity.<br/> | <div class=q data-lang="py3">The <code>commodities</code> collection contains the name and average price of each commodity.<br/> | ||
There are 99 commodities and 15 categories. | There are 99 commodities and 15 categories. | ||
<p class="strong | <p class="strong>Find the average price of each category, round to the nearest whole number</p> | ||
<pre class=def> | <pre class=def> | ||
from bson.code import Code | from bson.code import Code | ||
| Line 28: | Line 28: | ||
db.commodities.find_one() | db.commodities.find_one() | ||
) | ) | ||
</pre> | |||
<div class="ans"> | |||
from bson.code import Code;temp = db.commodities.map_reduce( map=Code("function(){emit(this.category,this.average_price)}"), reduce=Code("""function(key,values){var total = 0;for (var i = 0; i < values.length; i++){total += values[i];}return Math.round(total/values.length);} """),out={"inline":1} );pp.pprint(temp['results']) | |||
</div> | |||
</div> | |||
<div class=q data-lang="py3"> | |||
<p class="strong></p> | |||
<pre class=def> | |||
</pre> | </pre> | ||
<div class="ans"> | <div class="ans"> | ||
</div> | |||
</div> | </div> | ||
Revision as of 14:29, 23 July 2015
#ENCODING
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-16')
#MONGO
from pymongo import MongoClient
client = MongoClient()
client.elite.authenticate('scott','tiger')
db = client['elite']
#PRETTY
import pprint
pp = pprint.PrettyPrinter(indent=4)
Introducing the elite database **WORK IN PROGRESS
These questions will introduce the "elite" database, which contains data about the video game Elite Dangerous
There are two collections, commodities and systems. Inside systems there is are nested documents called stations
A system has many stations, and a station has many trade listings
Read more about the structure here: Elite Document Structure
Questions
commodities collection contains the name and average price of each commodity.There are 99 commodities and 15 categories.
Find the average price of each category, round to the nearest whole number
from bson.code import Code
pp.pprint(
db.commodities.find_one()
)
from bson.code import Code;temp = db.commodities.map_reduce( map=Code("function(){emit(this.category,this.average_price)}"), reduce=Code("""function(key,values){var total = 0;for (var i = 0; i < values.length; i++){total += values[i];}return Math.round(total/values.length);} """),out={"inline":1} );pp.pprint(temp['results'])