Python MongoDB クエリ
結果をフィルタリングする
コレクション内のドキュメントを検索する場合、クエリオブジェクトを使用して結果をフィルター処理できます。
最初の引数find()
メソッドはクエリオブジェクトであり、検索を制限するために使用されます。
例
住所が「Park Lane 38」のドキュメントを検索
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": "Park Lane 38" }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
実行例 »高度なクエリ
高度なクエリを作成するには、修飾子をクエリオブジェクトの値として使用できます。
例えば「住所」フィールドが文字「S」以上 (アルファベット順) で始まるドキュメントを検索するには、大なり修飾子{"$gt": "S"}
を使用します。
例
住所が「S」以上の文字で始まる文書を検索
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": { "$gt": "S" } }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
正規表現によるフィルタリング
修飾子として正規表現を使用することもできます。
正規表現は、文字列のクエリにのみ使用できます。
「住所」フィールドが文字「S」で始まる文書のみを検索するには、正規表現{"$regex": "^S"}
を使用します。
例
住所が文字「S」で始まる文書を検索
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": { "$regex": "^S" } }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
実行例 »プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。