2015年9月11日金曜日

開発環境

MongoDBイン・アクション (Kyle Banker (著)、Sky株式会社 玉川 竜司 (翻訳)、オライリージャパン)のⅠ部(初めてのMongoDB)、3章(MongoDBを使ったプログラムの作成)、3.2(ドライバの動作)、3.2.1(オブジェクトIDの生成)を Python で考えてみる。

コード(Emacs)

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import pymongo
import bson
import datetime

id = bson.ObjectId()
print(id.generation_time)

client = pymongo.MongoClient()
db = client['tutorial']
users = db['users']

gen_time1 = datetime.datetime(2015,9, 9)
gen_time2 = datetime.datetime(2015, 9, 10)

id1 = bson.ObjectId.from_datetime(gen_time1)
id2 = bson.ObjectId.from_datetime(gen_time2)

cursor = users.find({'_id': {'$gte': id1, '$lte': id2}})
for doc in cursor:
    print(doc)

入出力結果(Terminal, IPython)

$ ./sample2_1.py
2015-09-11 06:10:17+00:00
{'_id': ObjectId('55efd453a54d75196e8762cc'), 'age': 30, 'last_name': 'smith'}
{'_id': ObjectId('55efd453a54d75196e8762cd'), 'age': 40, 'last_name': 'jones'}
{'_id': ObjectId('55efd456a54d751971422856'), 'last_name': 'smith', 'age': 30}
{'_id': ObjectId('55efd456a54d751971422857'), 'last_name': 'jones', 'age': 40}
{'_id': ObjectId('55efd457a54d751973dcc6e5'), 'last_name': 'smith', 'age': 30}
{'_id': ObjectId('55efd457a54d751973dcc6e6'), 'last_name': 'jones', 'age': 40}
{'_id': ObjectId('55efd457a54d7519747322ee'), 'age': 30, 'last_name': 'smith'}
{'_id': ObjectId('55efd457a54d7519747322ef'), 'age': 40, 'last_name': 'jones'}
{'_id': ObjectId('55efd458a54d75197540a4d7'), 'last_name': 'smith', 'age': 30}
{'_id': ObjectId('55efd458a54d75197540a4d8'), 'last_name': 'jones', 'age': 40}
$

0 コメント:

コメントを投稿