Python – یافتن داده (MongoDB Find)
جستجو در MongoDB
در MongoDB از متدهای find()
و find_one()
برای پیدا کردن دادهها در یک کلکسیون استفاده میشود.
مشابه دستور 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()
یک شیء کوئری است. در این مثال از یک شیء کوئری خالی استفاده میکنیم که تمام اسناد موجود در کلکسیون را انتخاب میکند.
بدون پارامتر در متد find()
نتیجهای مشابه SELECT *
در MySQL میدهد.
مثال
برگرداندن تمام اسناد موجود در کلکسیون “customers” و چاپ هر سند:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
بازگرداندن فقط برخی فیلدها
پارامتر دوم متد find()
یک شیء است که توصیف میکند کدام فیلدها در نتیجه گنجانده شوند.
این پارامتر اختیاری است و در صورت عدم ذکر، همه فیلدها در نتیجه گنجانده خواهند شد.
مثال
فقط نامها و آدرسها را برگردانید، نه شناسهها (_id
):
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)
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام