「PythonとJavaScriptではじめるデータビジュアライゼーション」を読む

3.7MongoDB

pymongoはinstallされていなかった。 pip install pymongoでver-3.5.1がinstallされた MongoDBをinstallした場所(C:\Program Files\MongoDB\Server\3.4\bin)に移動して
>md c:\data\db を実行するとCドライブ直下にdata\dbフォルダを作成する つづいて
>mongod
でMongoDBサービスが開始される
参考にしたURL

stackoverflow.com

結果
f:id:bitop:20170909144106p:plain

nobel_winners = [
    {'category':'physics',
    'name':'Albert Einstein',
    'nationality':'Swiss',
    'sex':'male',
    'year':1921},
    {'category':'physics',
    'name':'Paul Dirac',
    'nationality':'British',
    'sex':'male',
    'year':1933},
    {'category':'chemistry',
    'name':'Marle Curie',
    'nationality':'Polish',
    'sex':'female',
    'year':1911}
]
from pymongo import MongoClient

DB_NOBEL_PRIZE = 'nobel_prize'
COLL_WINNERS = 'winners'


def get_mongo_database(db_name,host='localhost',port=27017,username = None,password=None):
    #認証なしであり/なしでMongo接続を作成する
    if username and password:
        mongouri = 'mongodb://%s:%s@%s/%s'%(username,password,host,db_name)
        conn = MongoClient(mongouri)
    else:
        conn = MongoClient(host,port)
    return conn[db_name]

db = get_mongo_database(DB_NOBEL_PRIZE)
coll = db[COLL_WINNERS]
print(coll.insert(nobel_winners))

結果 f:id:bitop:20170909144305p:plain

from pymongo import MongoClient

DB_NOBEL_PRIZE = 'nobel_prize'
COLL_WINNERS = 'winners'

def get_mongo_database(db_name,host='localhost',port=27017,username = None,password=None):
    #認証なしであり/なしでMongo接続を作成する
    if username and password:
        mongouri = 'mongodb://%s:%s@%s/%s'%(username,password,host,db_name)
        conn = MongoClient(mongouri)
    else:
        conn = MongoClient(host,port)
    return conn[db_name]

db = get_mongo_database(DB_NOBEL_PRIZE)
coll = db[COLL_WINNERS]
print("-------------------------------------------\n")
res = coll.find({'category':'chemistry'})
print(list(res))
print("-------------------------------------------\n")
res = coll.find({'year':{'$gt':1930}})
print(list(res))
print("-------------------------------------------\n")
res = coll.find({'$or':[{'year':{'$gt':1930}},{'sex':'female'}]})
print(list(res))

結果

f:id:bitop:20170909145623p:plain