آموزش افزودن / حذف سند در 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 ، می توانید قبل از اعتبار سنجی / پاک کردن داده ها را انجام دهید.
1 2 3 4 5 6 7 8 |
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 را بازگرداند ، تمام تغییرات ذخیره نشده ای که در سند ایجاد شده اند رد می شوند.
دیدگاه شما