Python MongoDB 検索
- 前のページ MongoDB インサート
- 次のページ MongoDB クエリ
MongoDBでは、findおよびfindOneメソッドを使用してコレクションのデータを検索します。
SELECT文がMySQLデータベースのテーブルからデータを検索するように。
一項目検索
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()
方法の最初の引数はqueryオブジェクトです。この例では、空のqueryオブジェクトを使用し、コレクションのすべてのドキュメントを選択します。
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()
結果に含まれるフィールドを表すオブジェクトが渡される第二个引数です。
このパラメータはオプションです。省略すると、すべてのフィールドが結果に含まれます。
例
名前と住所のみを返し、_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 の値を同時に指定することは許可されていません(_id フィールドが一方の場合を除きます)。0 の値が指定されたフィールドがある場合、他のすべてのフィールドの値は 1 になりますが、その逆も然りです:
例
この例では、結果から "address" を除外しています:
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 の値を同時に指定すると、エラーが発生します(_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)
- 前のページ MongoDB インサート
- 次のページ MongoDB クエリ