Cookies help us deliver our services. By using our services, you agree to our use of cookies. More information

Difference between revisions of "Elite Document Structure"

From NoSQLZoo
Jump to: navigation, search
m
Line 18: Line 18:
 
Unlike the <code>world</code> collection, <code>null</code> and empty values are not stored in this database.<br/>
 
Unlike the <code>world</code> collection, <code>null</code> and empty values are not stored in this database.<br/>
 
This means that some documents will have fields that others do not: Some systems will be uninhabited and have no stations. Some stations will have no listings.<br/>
 
This means that some documents will have fields that others do not: Some systems will be uninhabited and have no stations. Some stations will have no listings.<br/>
To query null <b>or</b> non-existant fields we use <code><field>: null</code><br/><br/>
+
To query null <b>or</b> non-existant fields use <code><field>: None</code>. In Mongo shell <code><field>: null</code> will also work.<br/><br/>
 
The average <code>commodities</code> document looks something like this.
 
The average <code>commodities</code> document looks something like this.
 
<pre>
 
<pre>

Revision as of 10:58, 26 July 2015

Questions on this database can be found here MAPREDUCE elite

Elite Dangerous

Keys used in this database.

    commodities: 
        _id, average_price, category, name
    systems: 
        _id, allegiance, faction, government, name, population, primary_economy, security, state, stations, updated_at, x, y, z

    systems.stations: 
        allegiance, distance_to_star, economies, export_commodities,has_blackmarket, has_commodities, has_rearm, has_repair,
        has_shipyard, has_outfitting, faction, government, listings, max_landing_pad, name, state, type, updated_at

    systems.stations.listings: 
        buy_price, collected_at, demand, commodity, sell_price, supply, update_count
        

Unlike the world collection, null and empty values are not stored in this database.
This means that some documents will have fields that others do not: Some systems will be uninhabited and have no stations. Some stations will have no listings.
To query null or non-existant fields use <field>: None. In Mongo shell <field>: null will also work.

The average commodities document looks something like this.

{
        "_id" : ObjectId("55af74e7402aa43f1ce7e3a3"),
        "name" : "Explosives",
        "average_price" : 267,
        "category" : "Chemicals"
}

systems is much bigger, so some stations and listings have been removed from this example document to make it shorter.


> db.systems.findOne({"name":"1 Kappa Cygni"})
{
        "_id" : ObjectId("55b0edf6369fd5074b349c48"),
        "stations" : [
                {
                        "max_landing_pad_size" : "M",
                        "has_blackmarket" : 0,
                        "has_commodities" : 1,
                        "updated_at" : 1434929486,
                        "has_outfitting" : 0,
                        "government" : "Democracy",
                        "has_shipyard" : 0,
                        "type" : "Unknown Outpost",
                        "has_rearm" : 0,
                        "allegiance" : "Federation",
                        "has_refuel" : 1,
                        "name" : "Kinsey Ring",
                        "listings" : [
                                {
                                        "commodity" : "Hydrogen Fuel",
                                        "supply" : 129630,
                                        "collected_at" : 1421669319,
                                        "update_count" : "1",
                                        "buy_price" : 93,
                                        "sell_price" : 89,
                                        "demand" : 0
                                },
                                {
                                        "commodity" : "Mineral Oil",
                                        "supply" : 0,
                                        "collected_at" : 1421669320,
                                        "update_count" : "1",
                                        "buy_price" : 0,
                                        "sell_price" : 326,
                                        "demand" : 217674
                                }
                        ],
                        "distance_to_star" : 2359,
                        "economies" : [
                                "Industrial",
                                "Refinery"
                        ],
                        "has_repair" : 1
                },
                {
                        "max_landing_pad_size" : "M",
                        "has_blackmarket" : 1,
                        "has_commodities" : 0,
                        "updated_at" : 1434929486,
                        "has_outfitting" : 0,
                        "government" : "Anarchy",
                        "has_shipyard" : 0,
                        "type" : "Unknown Outpost",
                        "has_rearm" : 1,
                        "allegiance" : "Independent",
                        "has_refuel" : 1,
                        "name" : "Hauck Enterprise",
                        "distance_to_star" : 4832,
                        "economies" : [
                                "Industrial",
                                "Refinery"
                        ],
                        "has_repair" : 1
                }
        ],
        "name" : "1 Kappa Cygni",
        "faction" : "United 1 Kappa Cygni Future",
        "government" : "Democracy",
        "allegiance" : "Federation",
        "updated_at" : 1430938622,
        "state" : "None",
        "needs_permit" : 0,
        "y" : 37.78125,
        "x" : -117.75,
        "security" : "High",
        "z" : 11.1875,
        "primary_economy" : "Industrial",
        "population" : 24843190
}