TECH I.S.

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)

プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細