2011年5月18日水曜日

PyMongoで剰余を条件としてデータを抽出する

PyMongoで剰余を条件としてデータを抽出するには、以下のコードのように$modを使用します。

# coding=UTF-8
from pymongo import *
conn = Connection("localhost", 27017)
conn.local.drop_collection("sales_by_year")
col = conn.local.sales_by_year
# データをinsert
col.insert({"year":2006, "sales":100})
col.insert({"year":2007, "sales":200})
col.insert({"year":2008, "sales":300})
col.insert({"year":2009, "sales":400})
col.insert({"year":2010, "sales":500})
col.insert({"year":2011, "sales":600})
# 偶数年のデータを表示する
for obj in col.find({"year":{"$mod":[2,0]}}):
 print(str(obj[u'year']) + ":" + str(obj[u'sales']))
print("---")
# JavaScript Expressionで偶数年のデータを表示する
for obj in col.find({"$where":"this.year % 2 == 0"}):
 print(str(obj[u'year']) + ":" + str(obj[u'sales']))

補足
ubuntuで以下のコマンドでMongoDBとPyMongoのインストールができます。
sudo apt-get install mongodb
sudo apt-get install python-pymongo

動作環境
Python 2.6.6, PyMongo 1.7, mongodb1.4.4

0 件のコメント:

コメントを投稿