MongoDB Find

از ویکی‌کد، دانشنامهٔ برنامه‌نویسی
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Python-menu.png
موارد آموزشی
مدیریت فایل
یادگیری ماشین
MySQL در پایتون
MongoDB در پایتون
۱شروع کار
۲ایجاد پایگاه‌داده
۳ایجاد Collection
۴Insert
۵Find
۶پرس‌وجو
۷مرتب‌سازی
۸Delete
۹Drop Collection
۱۰بروزرسانی
۱۱محدود‌کردن
مرجع پایتون
مرجع ماژول
چگونه در پایتون؟
مثال‌های پایتون


در 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() یک شیء پرس‌وجو است. در این مثال از یک شیء پرس‌وجو خالی استفاده می‌کنیم که همهٔ سندهای داخل مجموعه را انتخاب می‌کند.

هیچ پارامتری در متد find() نتیجه مشابه SELECT * در MySQL را نمی‌دهد.

مثال

همهٔ سندهای مجموعه “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)


منابع آموزشی