<slide>
<title>Importing OSM into MongoDB</title>

<div effect="fade-out">
<blurb>Find all pubs:</blurb>
<example>db.poi.find( { 'tags.amenity' : 'pub' } );</example>

<blurb>Let's look at the "explain" output:</blurb>
<example inline="1">db.poi.find( { 'tags.amenity' : 'pub' } ).explain();
{
    "queryPlanner" : {
        "plannerVersion" : 1,
        "namespace" : "demo.poiConcat",
        "indexFilterSet" : false,
        "parsedQuery" : {
            "tags.amenity" : { "$eq" : "pub" }
        },
        "winningPlan" : {
            "stage" : *"COLLSCAN"*,
            "filter" : {
                "tags.amenity" : { "$eq" : "pub" }
            },
            "direction" : "forward"
        },
        "rejectedPlans" : [ ]
    },
    …
</example>
</div>

<div effect="fade-in">
<blurb>We need an index for that:</blurb>
<example>db.poi.createIndex( { "tags.amenity" : 1 } );</example>
<blurb>And the new "explain" output:</blurb>
<example inline="1">db.poi.find( { 'tags.amenity' : 'pub' } ).explain();
…
        "winningPlan" : {
            "stage" : "FETCH",
            "inputStage" : {
                *|007700|"stage" : "IXSCAN",|*
                "keyPattern" : { "tags.amenity" : 1 },
                "indexName" : "tags.amenity_1",
                "isMultiKey" : false,
                "isUnique" : false,
                "isSparse" : false,
                "isPartial" : false,
                "indexVersion" : 1,
                "direction" : "forward",
                "indexBounds" : {
                    "tags.amenity" : [ "[\"pub\", \"pub\"]" ]
                }
            }
        },
</example>
</div>
</slide>
