آموزش روش های QuerySet در MongoEngine

3 سال پیش
آموزش روش های QuerySet در MongoEngine

آموزش روش های QuerySet در MongoEngine

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش روش های QuerySet در MongoEngine خواهیم پرداخت.

پیشنهاد ویژه : آموزش طراحی وب سایت با پایتون

شی QuerySet دارای روشهای مفید زیر برای پرس و جو در پایگاه داده است.

()first

اولین سندی که پرسش را برآورده می کند بازگردانده می شود کد زیر اولین سند در مجموعه محصولات را که قیمت آن <20000 است ، برمی گرداند.

qset=products.objects(price__lt=20000)
doc=qset.first()
print ('Name:',doc.Name, 'Price:',doc.price)

 

خروجی

 

Name: Router Price: 2000

 

()exclude

این باعث می شود که فیلدهای ذکر شده از مجموعه پرس و جو حذف شوند. در اینجا ، از to_json () mehod کلاس Document برای بدست آوردن نسخه JSONified Document استفاده می شود. قسمت ProductID در نتیجه نشان داده نخواهد شد.

for product in products.objects.exclude('ProductID'):
   print (product.to_json())

 

خروجی

{"_id": {"$oid": "5c8dec275405c12e3402423c"}, "Name": "Laptop", "price": 25000}
{"_id": {"$oid": "5c8dec275405c12e3402423d"}, "Name": "TV", "price": 50000}
{"_id": {"$oid": "5c8dec275405c12e3402423e"}, "Name": "Router", "price": 2000}
{"_id": {"$oid": "5c8dec275405c12e3402423f"}, "Name": "Scanner", "price": 5000}
{"_id": {"$oid": "5c8dec275405c12e34024240"}, "Name": "Printer", "price": 12500}

 

()fields

از این روش برای دستکاری زمینه های بارگیری در مجموعه درخواست استفاده کنید. از نام فیلدها به عنوان آرگومان های کلمه کلیدی استفاده کنید و ۱ را در نظر بگیرید ، ۰ را حذف کنید.

for product in products.objects.fields(ProductID=1,price=1):
print (product.to_json())

 

خروجی

{"_id": {"$oid": "5c8dec275405c12e3402423c"}, "ProductID": 1, "price": 25000}
{"_id": {"$oid": "5c8dec275405c12e3402423d"}, "ProductID": 2, "price": 50000}
{"_id": {"$oid": "5c8dec275405c12e3402423e"}, "ProductID": 3, "price": 2000}
{"_id": {"$oid": "5c8dec275405c12e3402423f"}, "ProductID": 4, "price": 5000}
{"_id": {"$oid": "5c8dec275405c12e34024240"}, "ProductID": 5, "price": 12500}

 

تنظیم آرگومان کلمه کلیدی فیلد بر روی ۰ در ()fields روش مشابهی دارد که روش ()exclude را حذف می کند.

for product in products.objects.fields(price=0):
print (product.to_json())

 

خروجی

 

{"_id": {"$oid": "5c8dec275405c12e3402423c"}, "ProductID": 1, "Name": "Laptop"}
{"_id": {"$oid": "5c8dec275405c12e3402423d"}, "ProductID": 2, "Name": "TV"}
{"_id": {"$oid": "5c8dec275405c12e3402423e"}, "ProductID": 3, "Name": "Router"}
{"_id": {"$oid": "5c8dec275405c12e3402423f"}, "ProductID": 4, "Name": "Scanner"}
{"_id": {"$oid": "5c8dec275405c12e34024240"}, "ProductID": 5, "Name": "Printer"}

 

()only

تأثیر این روش مشابه روش ()fields است. فیلدهای مربوط به آرگومان های کلمه کلیدی فقط در مجموعه درخواست نمایش داده می شوند.

for product in products.objects.only('Name'):
print (product.to_json())

 

خروجی

{"_id": {"$oid": "5c8dec275405c12e3402423c"}, "Name": "Laptop"}
{"_id": {"$oid": "5c8dec275405c12e3402423d"}, "Name": "TV"}
{"_id": {"$oid": "5c8dec275405c12e3402423e"}, "Name": "Router"}
{"_id": {"$oid": "5c8dec275405c12e3402423f"}, "Name": "Scanner"}
{"_id": {"$oid": "5c8dec275405c12e34024240"}, "Name": "Printer"}

 

 ()sum

این روش مجموع فیلد داده شده را در مجموعه جستجو محاسبه می کند.

 

()average

این روش میانگین فیلد داده شده را در مجموعه درخواست محاسبه می کند.

avg=products.objects.average('price')
ttl=products.objects.sum('price')
print ('sum of price field',ttl)
print ('average of price field',avg)

 

خروجی

sum of price field 94500
average of price field 18900.0

 

منبع.

 

لیست جلسات قبل آموزش MongoEngine

  1. آموزش MongoEngine
  2. آموزش MongoDB در MongoEngine
  3. آموزش قطب نما MongoDB در MongoEngine
  4. آموزش نگاشت کننده اسناد شی در MongoEngine
  5. آموزش نصب MongoEngine
  6. آموزش اتصال به پایگاه داده MongoDB در MongoEngine
  7. آموزش کلاس Document در MongoEngine
  8. آموزش طرح پویا در MongoEngine
  9. آموزش کلاس Field در MongoEngine
  10. آموزش افزودن / حذف سند در MongoEngine
  11. آموزش استعلام پایگاه داده در MongoEngine
  12. آموزش فیلترها در MongoEngine
  13. آموزش عملگرهای Query در MongoEngine
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه