You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.5 KiB

Mongo

Query ExamplesImport

Query Examples

Find all countries speaking X?

German

db.factbook.find( { "People and Society.Languages.text": /German/ } )

English

db.factbook.find( { "People and Society.Languages.text": /English/ } )

Find all countries with a land border with X?

Austria

db.factbook.find( { "Geography.Land boundaries.border countries.text": /Austria/ } )

Germany

db.factbook.find( { "Geography.Land boundaries.border countries.text": /Germany/ } )

Find all import partner countries for X?

Austria

db.factbook.find( { "Economy.Imports - partners.text": /Austria/ } )

Find all countries with voting age 16 years

db.factbook.find( { "Government.Suffrage.text": /16/ } )

Find all countries with X membership?

NATO

db.factbook.find( { "Government.International organization participation.text": /NATO/ } )

Schengen Convention

db.factbook.find( { "Government.International organization participation.text": /Schengen Convention/ } )

Find all chief of states with name of X?

Elisabeth

Find all countries with natural resources of X?

Gold

Diamonds

Sort countries by proven known crude oil reserves?

World

Europe (only)

Middle East (only)

Sort countries by beer consumption (drinking) per capita (person) in liters?

And so on.

Import

Use the mongoimport command/tool to import the factbook.json documents. For example, to import the country profile of Austria (that is, europe/au.json) use:

$ mongoimport --db world --collection factbook --file europe/au.json

To import all documents use a shell script. Example import.sh:

#!/bin/bash

MONGOIMPORT = mongoimport
SOURCE      = .           # assume working folder (as root)

function import_file {
  echo "  importing >${1}<..."
  ${MONGOIMPORT} --db world --collection factbook --file ${1}
}

function import_region {
  for file in ${SOURCE}/$1/*.json
  do
    import_file ${file}
  done
}

import_region africa
import_region antarctica
import_region australia-oceania
import_region central-america-n-caribbean
import_region central-asia
import_region east-n-southeast-asia
import_region europe
import_region middle-east
import_region north-america
import_region oceans
import_region south-america
import_region south-asia
import_region world

To check up if all country profiles got imported use a query in the mongo shell e.g.:

> use world
  switched to db world
> db.factbook.count()
  261