آموزش افزودن / حذف سند در MongoEngine

3 سال پیش
آموزش افزودن / حذف سند در MongoEngine

آموزش افزودن / حذف سند در MongoEngine

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

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

ما قبلاً از روش ()save  کلاس Document برای افزودن سندی در مجموعه استفاده کرده ایم. روش ()save را می توان با کمک آرگومان های زیر سفارشی کرد –

force_insert  پیش فرض نادرست است ، اگر روی True تنظیم شود ، اجازه به روزرسانی اسناد موجود را نمی دهد.
validate اعتبار سند را معتبر می کند ؛ روی False تنظیم شده تا از آن عبور کنید.
clean روش پاک کردن سند را فراخوانی کنید ، استدلال معتبر باید درست باشد.
write_concern به عنوان گزینه های مربوط به دستور getLastError استفاده می شود. به عنوان مثال ، ذخیره (… ، write_concern = {w: 2، fsync: True} ، …) صبر می کند تا حداقل دو سرور نوشتن را ضبط کنند و یک fsync را بر روی سرور اصلی مجبور می کنند.
cascade  پرچم را برای ذخیره های آبشار تنظیم می کند. با تنظیم “cascade” در سند __meta__ می توانید پیش فرض تنظیم کنید.
cascade_kwargs استدلال های کلیدی کلیدی اختیاری که باید به ذخیره های آبشار منتقل شود. معادل cascade = درست است.
_refs لیستی از منابع پردازش شده که در ذخیره های آبشار استفاده می شود
save_condition فقط درصورتی که سابقه مطابق با db شرایط (ها) را برآورده کند ، ذخیره را انجام دهید. در صورت عدم رعایت شرایط ، OperationError را افزایش می دهد
signal_kwargs واژه نامه kwargs برای انتقال به تماس های سیگنال.

قبل از فراخوانی ()save  می توانید قوانین اعتبار را برای اعتبار سنجی اسناد تنظیم کنید. با ارائه روش  ()clean ، می توانید قبل از اعتبار سنجی / پاک کردن داده ها را انجام دهید.

class MyDocument(Document):
   ...
   ...
   
   def clean(self):
      if <condition>==True:
         msg = 'error message.'
         raise ValidationError(msg)

 

توجه داشته باشید که پاک کردن فقط در صورت روشن بودن اعتبار سنجی و هنگام فراخوانی ()save  فراخوانی می شود.

کلاس سند همچنین دارای روش ()insert برای انجام درج انبوه است. این پارامترهای زیر را دارد –

doc_or_docs سندی یا لیستی از اسنادی که باید درج شود
load_bulk اگر درست باشد ، لیستی از نمونه های سند را برمی گرداند
write_concern  آرگومان های کلمه کلیدی اضافی برای () insert که به عنوان گزینه هایی برای دستور getLastError حاصل می شود ، وارد می شوند.
signal_kwargs فرهنگ لغت kwargs برای انتقال به تماس های سیگنال

اگر سند حاوی هر شی ReferenceField باشد ، به طور پیش فرض روش ()save  هیچ تغییری را در آن اشیا ذخیره نمی کند. اگر می خواهید همه مراجع نیز ذخیره شوند ، توجه داشته باشید که هر ذخیره یک پرسش جداگانه است ، پس از آن آبشار را به عنوان True to the save ذخیره می کنیم ، هر ذخیره ای را آبشار می کند.

با فراخوانی روش ()Delete، حذف یک سند از مجموعه آن بسیار آسان است. به یاد داشته باشید که فقط درصورتی که سند قبلاً ذخیره شده باشد ، اثر خواهد یافت. روش ()Delete آرگومان های زیر را دارد –

signal_kwargs  فرهنگ لغت kwargs برای انتقال به تماس های سیگنال.
write_concern آرگومان های اضافی مربوط به کلمات کلیدی ارسال می شوند که به عنوان گزینه هایی برای دستور getLastError مورد استفاده قرار می گیرند.

برای حذف کل مجموعه از پایگاه داده از روش () drop_collecction استفاده کنید. کل مجموعه مربوط به این نوع سند را از پایگاه داده خارج می کند. اگر سند مجموعه مجموعه ای نداشته باشد (به عنوان مثال انتزاعی است) ، این OperationError را بالا می برد.

متد ()modify  در کلاس document به روزرسانی اتمی سند را در پایگاه داده انجام می دهد و نسخه به روز شده آن را بارگیری می کند. اگر سند به روز شده باشد درست است یا اگر سندی در پایگاه داده با درخواست مطابقت نداشته باشد نادرست است. توجه داشته باشید که اگر متد True را بازگرداند ، تمام تغییرات ذخیره نشده ای که در سند ایجاد شده اند رد می شوند.

منبع.

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

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

دیدگاه شما

بدون دیدگاه