Python MongoDB 検索
MongoDBでは、コレクション内のデータを検索する為に
find()
とfind_one()
メソッドを使用します。MySQLデータベース内のテーブル内のデータを検索するために SELECTステートメントが使用されるのと同じです。
1 つを検索
MongoDBのコレクションからデータを選択するには、find_one()
メソッドを使用します。
find_one()
メソッドは、選択範囲内で最初に見つかったものを返します。
例
customersコレクションで最初のドキュメントを見つけます。
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)
実行例 »すべてを検索
MongoDBのテーブルからデータを選択するには、find()
メソッドを使用します。
find()
メソッドは、選択範囲内のすべてのデータを返します。
最初のパラメータfind()
メソッドはクエリ オブジェクトです。この例では、コレクション内のすべてのドキュメントを選択する空のクエリオブジェクトを使用します。
find()メソッドにパラメーターを指定しない場合、MYSQLのSELECTと同じ結果が得られます。
例
"customers" コレクション内のすべてのドキュメントを返し、各ドキュメントを印刷します。
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
実行例 »一部のフィールドのみを返す
find()
メソッドの2番目のパラメーターは、結果にどのフィールドを含めるかを記述するオブジェクトです。
このパラメータはオプションです。省略した場合、すべてのフィールドが結果に含まれます。
例
_ids ではなく、名前とアドレスのみを返します。
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "_id": 0, "name": 1, "address": 1 }):
print(x)
実行例 »同じオブジェクトに0と1の両方の値を指定することはできません (フィールドの1つが_idフィールドである場合を除く)。値0のフィールドを指定すると、他のすべてのフィールドは値1を取得し、その逆も同様です。
例
この例では、結果から「住所」を除外します。
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
print(x)
例
同じオブジェクトに0と1の両方の値を指定すると、エラーが発生します(フィールドの1つが _id フィールドの場合を除く)。
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "name": 1, "address": 0 }):
print(x)
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。