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)

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.