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 را پیدا می‌کند:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

x = mycol.find_one()

print(x)


مشاهدهٔ نتیجه


Find All[ویرایش | ویرایش]

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

متد find() همهٔ وقوع‌های داده در انتخاب را برمی‌گرداند.

اولین پارامتر متد find() یک شیء پرس‌وجو است. در این مثال از یک شیء پرس‌وجو خالی استفاده می‌کنیم که همهٔ سندهای داخل مجموعه را انتخاب می‌کند.

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

مثال[ویرایش | ویرایش]

همهٔ سندهای مجموعه “customer” را برمی‌گرداند و هر سند را چاپ می‌کند:

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)


مشاهدهٔ نتیجه


اجازه تعیین هردو مقدار ۰ و ۱ را در یک شیء ندارید (به جز مواردی که یکی از فیلدها فیلد _id است). اگر فیلدی با مقدار ۰ را مشخص کنید، همهٔ فیلدهای دیگر مقدار ۱ می‌گیرند و بالعکس:

مثال[ویرایش | ویرایش]

این مثال “address” را از نتیجه حذف می‌کند:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

for x in mycol.find({},{ "address": 0 }):
  print(x)


مشاهدهٔ نتیجه


مثال[ویرایش | ویرایش]

اگر هردو مقدار؛ و ۱ را در یک شیء مشخص کنید با خطا مواجه خواهید شد (به جز مواردی که یکی از فیلدها _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)


منابع آموزشی