MongoDB Find
در MongoDB از متدهای find و findOne برای یافتن داده در مجموعه استفاده میکنیم.[۱]
درست مانند عبارت SELECT که برای یافتن داده در جدول در پایگاه داده MySQL استفاده میشود.
Find One
برای انتخاب داده از یک مجموعه در MongoDB، از متد find_one()
استفاده میکنیم.
متد find_one()
اولین وقوع (داده) در انتخاب را برمیگرداند.
مثال
اولین سند در مجموعه customers را پیدا میکند:
1 import pymongo
2
3 myclient = pymongo.MongoClient("mongodb://localhost:27017/")
4 mydb = myclient["mydatabase"]
5 mycol = mydb["customers"]
6
7 x = mycol.find_one()
8
9 print(x)
Find All
برای انتخاب داده از جدول در MongoDB، میتوانیم از متد find()
هم استفاده کنیم.
متد find()
همهٔ وقوعهای داده در انتخاب را برمیگرداند.
اولین پارامتر متد find()
یک شیء پرسوجو است. در این مثال از یک شیء پرسوجو خالی استفاده میکنیم که همهٔ سندهای داخل مجموعه را انتخاب میکند.
مثال
همهٔ سندهای مجموعه “customer” را برمیگرداند و هر سند را چاپ میکند:
1 import pymongo
2
3 myclient = pymongo.MongoClient("mongodb://localhost:27017/")
4 mydb = myclient["mydatabase"]
5 mycol = mydb["customers"]
6
7 for x in mycol.find():
8 print(x)
برگرداندن فقط بعضی از فیلدها
دومین پارامتر متد find()
، شیءای است که تعیین میکند کدام فیلدها در نتیجه وجود داشته باشند.
این پارامتر اختیاری است و اگر حذف شود، همه فیلدها در نتیجه وجود خواهند داشت.
مثال
فقط نامها و آدرسها را برمیگرداند _idها را نه:
1 import pymongo
2
3 myclient = pymongo.MongoClient("mongodb://localhost:27017/")
4 mydb = myclient["mydatabase"]
5 mycol = mydb["customers"]
6
7 for x in mycol.find({},{ "_id": 0, "name": 1, "address": 1 }):
8 print(x)
اجازه تعیین هردو مقدار ۰ و ۱ را در یک شیء ندارید (به جز مواردی که یکی از فیلدها فیلد _id است). اگر فیلدی با مقدار ۰ را مشخص کنید، همهٔ فیلدهای دیگر مقدار ۱ میگیرند و بالعکس:
مثال
این مثال “address” را از نتیجه حذف میکند:
1 import pymongo
2
3 myclient = pymongo.MongoClient("mongodb://localhost:27017/")
4 mydb = myclient["mydatabase"]
5 mycol = mydb["customers"]
6
7 for x in mycol.find({},{ "address": 0 }):
8 print(x)
مثال
اگر هردو مقدار؛ و ۱ را در یک شیء مشخص کنید با خطا مواجه خواهید شد (به جز مواردی که یکی از فیلدها _id باشد):
1 import pymongo
2
3 myclient = pymongo.MongoClient("mongodb://localhost:27017/")
4 mydb = myclient["mydatabase"]
5 mycol = mydb["customers"]
6
7 for x in mycol.find({},{ "name": 1, "address": 0 }):
8 print(x)
منابع آموزشی