Python MongoDB جستجو

در MongoDB، ما از روش‌های find و findOne برای پیدا کردن داده‌های مجموعه استفاده می‌کنیم.

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

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

مثال

تمام مستندات مجموعه "customers" را برمی‌گرداند و هر مستند را چاپ می‌کند:

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
برای x در mycol.find():
  print(x)

اجرای مثال

فقط برخی از فیلدها را برمی‌گرداند

find() دومین پارامتر روش توضیح می‌دهد که کدام فیلدها در نتیجه شامل می‌شوند.

این پارامتر اختیاری است، اگر مشخص نشود، تمام فیلدها در نتایج شامل خواهند شد.

مثال

فقط نام و آدرس را بازمی‌گرداند، نه _ids:

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
برای x در 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"]
برای x در mycol.find({},{ "address": 0 }):
  print(x)

اجرای مثال

مثال

اگر در یک شیء به طور همزمان 0 و 1 مشخص شود، خطا رخ خواهد داد (مگر اینکه یکی از فیلدها _id باشد):

import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
برای x در mycol.find({},{ "name": 1, "address": 0 }):
  print(x)