2011年5月16日月曜日

PyMongoで指定のフィールドが存在しないオブジェクトを検索する

PyMongoで指定のフィールドが存在しないオブジェクトを検索するには、以下のコードのように$exists演算子を使用します。

# coding=UTF-8
from pymongo import *
conn = Connection("localhost", 27017)
conn.local.drop_collection("members")
col = conn.local.members
# メンバーをinsert
col.insert({"name":"brian", "age":"21"})
col.insert({"name":"bob", "age":"22"})
col.insert({"name":"rob", "age":"23"})
col.insert({"name":"brandy"})
# フィールドが存在しないメンバーを探す
for obj in col.find({"age":{"$exists":False}}):
 print(obj)
print("---")
# JavaScript Expressionでフィールドが存在しないメンバーを探す
for obj in col.find({"$where":"'age' in this == false"}):
 print(obj)

補足
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 件のコメント:

コメントを投稿