PythonでMongoDBの利用

MongoDB: The Definitive Guide

前回はPythonからリレーショナルデータベースのPostgreSQLの使い方を書きました。 gray-crown.hateblo.jp

今回はPythonからNoSQLデータベースで最もよく利用されるMongoDB*1を利用する方法をまとめます。 ライブラリはpymongoを利用します。 インストールにはpipを利用します。

データベースとの接続

from pymongo import MongoClient

client = MongoClient('localhost')
db = client.people

MongoDBとの接続には pymongo ライブラリの MongoClient オブジェクトを利用します。 MongoClient オブジェクトの初期化にはMongoDBの場所を知らせる必要があります。 ここでは localhost を指定しています。 データベースへはMongoClientオブジェクトのメンバとしてアクセスします。

データベースの操作

リレーショナルデータベースでいうところのリレーションは、MongoDBではコレクションとよばれます。

コレクションへのアクセスは「メンバとしてアクセス」と「連想配列としてアクセス」の二種類が利用できます。

collection = db.japanese
collection = db['japanese']

コレクションへのデータの挿入はinsert_oneメソッドを利用します。

collection.insert_one({'id':'101', 'name':u'太郎', age:'21'})

コレクションへのデータの検索はfindメソッドを利用します。

collection.find({'id':'101'})

for doc in cursor:
     name = doc['name']
     age = doc['age']

検索結果をドキュメントのリストとしてアクセスします。 各ドキュメントは連想配列で表現される。