Python MongoDB クエリ

結果のフィルタリング

コレクション内でドキュメントを検索する際には、queryオブジェクトを使用して結果をフィルタリングできます。

find() メソッドの最初の引数は、検索を限定するために使用されるqueryオブジェクトです。

住所が「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)

インスタンスを実行

高度なクエリ

高度なクエリを行うには、修飾子をクエリオブジェクトの値として使用できます

例えば、「address」フィールドがアルファベット "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)

インスタンスを実行

正規表現を使用してフィルタリング

正規表現を修飾子として使用することもできます

正規表現は文字列のクエリにのみ使用できます

「address」フィールドがアルファベット "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)

インスタンスを実行