2011年5月22日日曜日

PyMongoでin句で指定した値に一致するデータを抽出する

PyMongoでin句で指定した値に一致するデータを抽出するには、以下のコードのように$inを使用します。

# 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})
# 2010年と2011年のデータを表示する
for obj in col.find({"year":{"$in":[2010, 2011]}}):
 print str(obj[u'year']) + ":" + str(obj[u'sales'])
print("---")
# JavaScript Expressionで2010年と2011年のデータを表示する
for obj in col.find({"$where":"this.year in {2010:1, 2011:1}"}):
 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 件のコメント:

コメントを投稿