<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های modos coding</title>
        <link>https://virgool.io/feed/@modos-coding</link>
        <description>دانشجوی کارشناسی کامپیوتر  - Blogger &amp; developer</description>
        <language>fa</language>
        <pubDate>2026-06-10 12:46:53</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/36797/avatar/TyFmjc.png?height=120&amp;width=120</url>
            <title>modos coding</title>
            <link>https://virgool.io/@modos-coding</link>
        </image>

                    <item>
                <title>دوره آموزش مانگو دی بی: قسمت 15 - aggregation</title>
                <link>https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-15-aggregation-kqm1xwq0hqs0</link>
                <description> مانگو دی بی - aggregationرسیدیم به مبحث aggregation ها، در مانگون دی بی (مثلا اکثر دیتابیس های دیگه) میتونیم یک سری از داده ها رو با هم گروه کنیم و یه سری محاسبات روی اون انجام بدیم و نتیجه رو بخونیم. مثلا یه کالکشن از مطالب وبسایت مون داریم، هر داکیومنت توی این کالکشن یک فیلد به نام author داره که نویسنده ی اون پست رو مشخص میکنه. فرض کنید میخواهیم ببینیم هر نویسنده چند تا پست توی سایت ما نوشته، به این صورت کوئری میزنیم:db.posts.aggregate([ { $group: {&amp;quotauthor&amp;quot:&amp;quotauthor&amp;quot, &amp;quotpostsNumber&amp;quot: { $sum: 1 } } } ] )توی کد بالا با استفاده از تابع aggregate میایم بهش میگیم که بر اساس author داکیومنت ها رو از هم جدا کن و تعداشون رو با هم sum کن و توی یه فیلد به نام postsNumber به من برگردون. یعنی به عنوان مثال میاد تمام داکیومنت هایی که نویسنده شون reza بوده رو گروه میکنه و تعدادشون رو به ما میده.توی یه مثال دیگه فرض کنید داکیومنت های زیر رو توی کالکشن users داریم:حالا میخوایم میانگین نمرات همه ی کاربران یعنی میانگین فیلد grade رو حساب کنیم:توجه کنید که توی group حتما باید فیلد id_ مشخص بشه، ما اینجا چون نمیخواستیم بر اساس id گروه بندی کنه و کل داکیومنت ها رو در نظر بگیره بهش مقدار null دادیم.یکسری aggregation های آماده هم توی مانگو بصورت فانکشن وجود داره، مثل countDocuments که تعدادا کل داکیومنت های یک کالکشن رو نشون میده، تابع estimatedDocumentCount هم تعداد رو تخمین میزنه ( برای دیتابیس های با حجم بالا):برای اطلاعات بیشتر مستندات مانگو دی بی رو مطالعه کنید:https://docs.mongodb.com/manual/aggregation/ https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-14-%D8%A7%DB%8C%D9%86%D8%AF%DA%A9%D8%B3-oy7nessdclex </description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Sat, 06 Aug 2022 00:16:40 +0430</pubDate>
            </item>
                    <item>
                <title>دوره آموزش مانگو دی بی: قسمت 14 - ایندکس</title>
                <link>https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-14-%D8%A7%DB%8C%D9%86%D8%AF%DA%A9%D8%B3-oy7nessdclex</link>
                <description>ایندکس در مانگو دی بیساخت ایندکس برای کالکشن ها یکی از مهم ترین موارد برای افزایش پرفورمنس دیتابیس مونه. موقعی که با تابع find توی دیتابیس جسنجو می کنیم، مانگو یک به یک به ترتیب داکیومنت ها رو بررسی می کنه که این موجب سرعت و پرفورمنس پایین میشه، با ساخت ایندکس برای فیلد ها، مانگو یک B-Tree بر اساس اون فیلد ( یا فیلد ها) میسازه و داکیومنت ها رو بر اساس اون پیمایش میکنه. میتونیم برای هر کالکشن چند ایندکس بسازیم. مثلا اینجا روی فیلد grade یک ایندکس میسازیم و با عدد 1 بهش میگیم که اونا رو صعودی بچینه:با استفاده از تابع dropIndexes می تونید همه ی ایندکس های یک کالکشن رو پاک کنید. تابع getIndexes ایندکس های یک کالکشن رو نشون میده:بصورت پیشفرض یک ایندکس از روی فیلد id همیشه توسط مانگو ساخته میشه. اگر توجه کنین می بینید که یک نام هم برای هر ایندکس ساخته شده، یعنی میتونیم برای یک فیلد چند نوع ایندکس بسازیم. با تابع dropIndex میتونید یک ایندکس خاص رو حذف کنید:مبحث ایندکس کردن گسترده س و توی مانگو انواع مختلفی از ایندکس رو بسازید، در قسمت های آینده دوباره به این مبحث بر میگردیم، پیشنهاد می کنم مستندات رسمی مانگو رو مطالعه کنید:https://docs.mongodb.com/manual/indexes/ https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-13-limit-%D9%88-skip-%D9%88-sort-y1diifffsmoe </description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Fri, 05 Aug 2022 14:55:11 +0430</pubDate>
            </item>
                    <item>
                <title>دوره آموزش مانگو دی بی: قسمت 13 - limit و skip و sort</title>
                <link>https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-13-limit-%D9%88-skip-%D9%88-sort-y1diifffsmoe</link>
                <description>توابع sort و limit و skipاطلاعات زیر رو در کالکشن users داریم:با استفاده از تابع limit میتونیم انتخاب کنیم چه تعداد داکیومنت رو تابع find به ما بده، در مثال زیر فقط 2 داکیومنت اول رو به ما میده:حالا اگه بخوایم از روی داکیومنت اول رد بشه و داکیومنت دوم و سوم رو به ما بده میتونیم از تابع skip استفاده کنیم:با استفاده از تابع sort میتونیم داده هایی که از مانگو میخونیم رو بر اساس فیلد ها مرتب کنیم، عدد 1 برای هر فیلد یعنی مرتب صعودی و عدد منفی 1 یعنی بصورت نزولی مرتب بشن:
 https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-12-projection-sldwk1bcae29 </description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Thu, 04 Aug 2022 00:19:37 +0430</pubDate>
            </item>
                    <item>
                <title>دوره آموزش مانگو دی بی: قسمت 12 - Projection</title>
                <link>https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-12-projection-sldwk1bcae29</link>
                <description>پروجکشن در مانگو دی بیپروجکشن ( معنی فارسی خوبی براش پیدا نکردم ) توی مانگو یعنی میتونیم موقع دریافت اطلاعات با توابع find مشخص کنیم که چه فیلد هایی رو میخوایم و چه فیلد هایی رو نمیخوایم. مقلا میخوایم فقط فیلد username رو از داکیومنت های کالکشن users دریافت کنیم:در مثال بالا آرگومان اول رو {} گذاشتم چون شرط خاصی ندارم ولی توی آرگومان دوم، فیلد username رو برابر مقدار 1 قرار دادم تا فقط فید username داکیومنت ها رو بهم بده، نتیجه این شده که همه ی فیلد ها رو بهم داده و بعضیاشون فقط id دارن، بخاطر اینه که بصورت پیشفرض همیشه id رو بهمون میده، میتونیم مقدار فیلد id رو صفر بزاریم:این دفعه اونایی که فیلد username رو ندارن بصورت آبجکت خالی بهمون داده. با استفاده از عملگر slice میتونیم ایندکس خاصی از یک فیلد آرایه رو بگیریم، مثلا میخوایم آخرین عضو آرایه ی community رو برای هر کاربر بخونیم، برای این کار مقدار منفی 1 رو بهش میدیم:
 https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-11-%D8%AD%D8%B0%D9%81-%D8%AF%D8%A7%DA%A9%DB%8C%D9%88%D9%85%D9%86%D8%AA-krf5thuyvfpr  </description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Wed, 03 Aug 2022 00:23:27 +0430</pubDate>
            </item>
                    <item>
                <title>دوره آموزش مانگو دی بی: قسمت 11 - حذف داکیومنت</title>
                <link>https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-11-%D8%AD%D8%B0%D9%81-%D8%AF%D8%A7%DA%A9%DB%8C%D9%88%D9%85%D9%86%D8%AA-krf5thuyvfpr</link>
                <description>حذف داکیومنت در مانگو دی بیبرای حذف داکیومنت ها 2 تابع deleteMany و deleteOne رو در اختیار داریم. تابع deleteOne اولین داکیومنتی که شرط ما را دارد حذف می کند. مثلا کاربری که username اون برابر با nima هست رو حذف می کنیم:با استفاده از تابع deleteMany تمام داکیومنت هایی که فیلد age آن ها کمتر از 18 هست رو پاک می کنیم:اگه میخواین همه ی داکیومنت های یک کالکشن پاک بشن، میتونید کل اون کالکشن رو drop کنید. https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-10-%D8%A2%D9%BE%D8%AF%DB%8C%D8%AA-%D8%AF%D8%A7%DA%A9%DB%8C%D9%88%D9%85%D9%86%D8%AA-zoxoucie7m6q </description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Tue, 02 Aug 2022 10:02:16 +0430</pubDate>
            </item>
                    <item>
                <title>دوره آموزش مانگو دی بی: قسمت 10 - آپدیت داکیومنت</title>
                <link>https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-10-%D8%A2%D9%BE%D8%AF%DB%8C%D8%AA-%D8%AF%D8%A7%DA%A9%DB%8C%D9%88%D9%85%D9%86%D8%AA-zoxoucie7m6q</link>
                <description>آپدیت در مانگو دی بی3 متد اصلی برای  آپدیت در مانگو دی بی داریم:db.collection.updateOne()db.collection.updateMany()db.collection.replaceOne()میخوایم مقدار فیلد vip کاربر modos رو به false تغییر بدیم:موقع عملیات آپدیت خوبه که زمان تغییرات رو هم توی دیتابسی ذخیره کنیم، میتونیم با عملگر currentDate و یک فیلد به نام دلخواه (بهتره lastModified باشه) این زمان رو ذخیره کنیم:نتیجه:توی هیچکدوم از توابع آپدیت نمیتونید فیلد id_ رو مقدارش رو تغییر بدین.با تابع updateMany میتونیم تمام داکیومنت هایی که یک شرط خاص دارند را آپدیت کنیم، مثلا میخواهیم فیلد vip همه ی کاربران رو true کنیم:با تابع replaceOne میتونیم داکیومنتی که یک شرط رو داره به صورت کامل جایگزین کنیم، این تابع چنتا option اختیاری هم داره که یکی از اونا upsert هست، اگر این فیلد رو مقدار true بزاریم، در صورتی که داکیومنتی با شرط مورد نظر پیدا نشد، یک داکیومنت جدید میسازه: مثلا اینجا کاربری به نام نیما نداریم ولی چون upsert برابر true است یک داکیومنت با فیلد هایی که بهش دادیم میسازه:نتیجه:داکیومنت رسمی مانگو دی بی برای آپدیت:https://docs.mongodb.com/manual/tutorial/update-documents/ https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-9-%DA%A9%D9%88%D8%A6%D8%B1%DB%8C-%D9%87%D8%A7-%D8%A8%D8%AE%D8%B4-%D8%B3%D9%88%D9%85-loht2vfgpujz </description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Mon, 01 Aug 2022 01:39:18 +0430</pubDate>
            </item>
                    <item>
                <title>دوره آموزش مانگو دی بی: قسمت 9 - کوئری ها - بخش سوم</title>
                <link>https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-9-%DA%A9%D9%88%D8%A6%D8%B1%DB%8C-%D9%87%D8%A7-%D8%A8%D8%AE%D8%B4-%D8%B3%D9%88%D9%85-loht2vfgpujz</link>
                <description>کوئری های مانگو دی بیدر ادامه ی بحث کوئری ها در مانگو دی بی میخوایم یخورده بیشتر تمری کنیم. داکیومنت های زیر رو به کالکشن users اضافه میکنم:در مثال بالا فیلد body خودش یک داکیومنت به حساب میاد و به این حالت میگیم داکیومنت تو در تو یا nested documents. اگر بخوام کاربرانی رو که فیلد body اون ها به فرمت زیر هست رو پیدا کنم: body: { height: 161, weight: 75, hair: &#039;brown&#039; }اینطوری کوئری میزنم:اگه بخوام کاربرانی که وزن قدشون بلند تر از 180 هست رو پیدا کنم اینجوری کوئری میزنم:فیلد weight داخل داکیومنت body ه. حواستون باشه که body.weight رو داخل جفت کاما قرار بدین. کلا کلید ها رو خوبه که توی کاما قرار بدین و همینجوری ننویسید، منم از این به بعد اینجوری پیش میرم.اگه بخوایم افرادی رو که توی بیش از 1 کامیونیتی عضو هستند رو پیدا کنیم اینجوری میشه:توی مثال بالا گفتیم که افرادی رو که سایز community اون ها بیشتر از 1 هست رو بهمون بده. توی مثال زیر افرادی که در کامیونیتی جاوا هستند رو از دیتابیس میگیریم:میتونیم بر اساس ایندکس آرایه ها هم سرچ کنیم، مثلا اگر اولین عضو (ایندکس ضفر) آرایه کامیونیتی برابر با جاوا بود:برای تمرین و مثال های بیشتر مستندات مانگو رو یه نگاه بندازید. https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-8-%DA%A9%D9%88%D8%A6%D8%B1%DB%8C-%D9%87%D8%A7-%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-fq1phoibbxy6 </description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Sun, 31 Jul 2022 08:00:27 +0430</pubDate>
            </item>
                    <item>
                <title>دوره آموزش مانگو دی بی: قسمت 8 - کوئری ها - بخش دوم</title>
                <link>https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-8-%DA%A9%D9%88%D8%A6%D8%B1%DB%8C-%D9%87%D8%A7-%D8%A8%D8%AE%D8%B4-%D8%AF%D9%88%D9%85-fq1phoibbxy6</link>
                <description>کوئری های مانگو دی بیدر ادامه ی مبحث کوئری ها با عملگر and آشنا میشیم، همونطور که حدس زدین وقتی درستی چند شرط رو با هم بررسی کنیم از این عملگر استفاده می کنیم. بع عنوان مثال میخواهیم کاربری با یوزرنیم modos و ایمیل email1@gmail.com رو پیدا کنیم:با استفاده از عملگر or میتونیم کاربری که یوزرنیم اون zahra هست یا ایمیل اون email1.gmail.com هست رو پیدا کنیم که در اینجا 2 تا کاربر به ما میده ( با استفاده از تابع find):با عملگر nor میتونیم کاربرانی که نه یوزرنیم zahra دارند و نه ایمیل email1@gmail.com دارند رو پیدا کنیم:با استفاده از عملگر not میتونیم شرط not منطقی رو چک کنیم، یادتون باشه که این عملگر فقط میتونه در کنار دیگر عملگر ها استفاده بشه و خروجی ای که عملگر داخلی اون میده رو چک کنه و نمیتونه مستقیما مقداری رو بررسی کنه، مثلا برای این که بخواهیم کاربرانی رو که یوزرنیم آن ها با حرف m شروع نمیشن رو پیدا کنیم میتونیم از عملگر not در کنار عملگر regex استفاده کنیم:ولی اگه بخوایم مثلا کاربری که یوزرنیم اون modos نیست رو پیدا کنیم عملگر not به کارمون نمیاد و خطا میده و باید از عملگر ne$ استفاده کنیم. عملگر هایی که معرفی کردیم رو میتونید در کنار همدیگه استفاده کنید، توی مثال زیر از عملگر های gt و or استفاده شده:متد pretty در عکس بالا برای اینه که خروجی رو در چند خط و با فرمت قشنگ تری نشون بده که خب توی نسخه های جدید  لازم نیست این دستور رو وارد کنید و خودش اتوماتیک با این فرمت نشون میده. https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-7-%DA%A9%D9%88%D8%A6%D8%B1%DB%8C-%D9%87%D8%A7-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-mdepi88zmztn </description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Sat, 30 Jul 2022 09:12:05 +0430</pubDate>
            </item>
                    <item>
                <title>دوره آموزش مانگو دی بی: قسمت 7 - کوئری ها - بخش اول</title>
                <link>https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-7-%DA%A9%D9%88%D8%A6%D8%B1%DB%8C-%D9%87%D8%A7-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-mdepi88zmztn</link>
                <description>کوئری ها در مانگو دی بیبا استفاده از دستور show collections میتونید لیست کالکشن های یک دیتابیس رو ببینید:یک سری داکیومنت در کالکشن users وارد می کنیم:با استفاده از متد ()db.users.find میتونیم لیست تمام داکیومنت های کالکشن users رو بگیریم. با استفاده از متد ()findOne میتونیم یک داکیومنت رو با یه شرط خاص بگیریم، مثلا من اینجا داکیومنتی که username اون برار با modos هست رو از دیتابیس میگیرم:عملگر های شرطیتوی متد ()find میتونیم از عملگر های شرطی استفاده کنیم، مثلا اینجا user هایی رو که سن اون ها بالاتر از 18 هست رو برمیگردونم:عملگر gt$ به معنی greater than هست و در بالا میگیم که اون هایی که age شون بزرگتر از 18 هست رو به ما بده. حواستون باشه که اگه از متد ()findOne استفاده کنید فقط اولین داکیومنت رو بهتون میده.با استفاده از lt$ یا همون less than میتونیم کاربر هایی رو که سن اون ها کمتر از 18 هست رو پیدا کنیم:با استفاده از عملگر in$ میتونیم کاربرانی که مثلا در community جاوا یا سی شارپ عضو هستند رو بهمون نشون بده:با استفاده از عملگر nin$ یوزر هایی که عضو کامیونیتی جاوا و سی شارپ نیستند رو استخراج می کنیم:لیست کامل عملگر ها رو در جدول زیر میتونید ببینید و خودتون تست کنید: https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-6-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%AF%D8%A7%DA%A9%DB%8C%D9%88%D9%85%D9%86%D8%AA-owlelnvogb13 </description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Fri, 29 Jul 2022 10:42:15 +0430</pubDate>
            </item>
                    <item>
                <title>دوره آموزش مانگو دی بی: قسمت 6 - ساخت داکیومنت</title>
                <link>https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-6-%D8%B3%D8%A7%D8%AE%D8%AA-%D8%AF%D8%A7%DA%A9%DB%8C%D9%88%D9%85%D9%86%D8%AA-owlelnvogb13</link>
                <description>ساخت و حذف داکیومنت در مانگوبرای اضافه کردن یک داکیومنت به یک کالکشن میتونیم از دستور ()db.collectionName.insertOne استفاده کنیم. داخل این فانکسن یک آبجکت شبیه json که فرمت key-value داره قرار میدیم. اینجا من یک پست جدید با فیلد های title,author,createdAt,updatedAt ساختم.با استفاده از آبجکت Date میتونید یک مقدار از نوع ISODate بسازید که در بالا از اون استفاده کردیم.اگر کالکشنی که موقع insert مشخص میکنید وجود نداشته باشه، اتوماتیک ساخته میشه و لازم نیس از دستور createCollection استفاده کنیم.میتونید با استفاده از تابع insertMany چنتا داکیومنت رو همزمان اضافه کنید. در ادامه من 3 تا کاربر جدید در کالکشن users اضافه میکنم. حواستون باشه که اینجا باید داکیومنت ها رو داخل یه آرایه قرار بدین.توی نسخه های قدیمی تر ( قبل از 5) توابع insert و save هم بودند که الان منسوخ شدند پس ازشون استفاده نکنید، تابع save برای مواقعی بود که اگر id_ رو بهش میدادیم اون داکیومنتی که id رو داشت آپدیت میشد وگرنه اگه یه داکیومنت جدید اضافه می کرد.توی مثال های بالا داکیومنت ها ما فیلد های مشابهی داشتن ولی همونطور که میدونید میتونن مشابه نباشن و این اصلی ترین ویژگی دیتابیس های غیر رابطه ای هست، در اینجا من به کالکشن users یه داکیومنت جدید اضافه می کنم که هیچ ربطی به داکیومنت های دیگه ی این کالکشن نداره.
 https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-5-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%88-%D8%AD%D8%B0%D9%81-%DA%A9%D8%A7%D9%84%DA%A9%D8%B4%D9%86-aoilfhkaslje </description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Thu, 28 Jul 2022 10:13:30 +0430</pubDate>
            </item>
                    <item>
                <title>دوره آموزش مانگو دی بی: قسمت 5 - ساخت و حذف کالکشن</title>
                <link>https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-5-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%88-%D8%AD%D8%B0%D9%81-%DA%A9%D8%A7%D9%84%DA%A9%D8%B4%D9%86-aoilfhkaslje</link>
                <description>ساخت و حذف کالکشن در مانگوساخت کالکشنهمونطور که قبلن دیدیم، کالکشن ها مشابه جدول در دیتابیس های SQL هستند. برای ایجاد کالکشن توی دیتابیس خودمون باید از دستور db.createCollection(name, options) استفاده کنیم. فیلد name اجباریه ولی options اختیاریه، مواردی رو که میتونید توی options وارد کنید در زیر اومده:یکسری فیلد دیگه هم میتونید توی options مشخص کنید که میتونید توی سایت مانگو ببینید. موقع اضافه کردن داکیومت ها اول فیلد size و بعدش فیلد max بررسی میشه. در ادامه میتونید ببینید که من 2 تا کالکشن به نام های posts و users توی دیتابیس virgool ساختم:حذف کالکشنبرای حذف یک کالکشن میتونید از دستور ()db.collectionName.drop استفاده کنید من اینجا کالکشن users رو حذف میکنم: https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%88-%D8%AD%D8%B0%D9%81-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-fdudpw4titoj </description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Wed, 27 Jul 2022 08:00:19 +0430</pubDate>
            </item>
                    <item>
                <title>دوره آموزش مانگو دی بی: قسمت 4 - ساخت و حذف دیتابیس</title>
                <link>https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%88-%D8%AD%D8%B0%D9%81-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-fdudpw4titoj</link>
                <description>ساخت و حذف دیتابیس مانگوقبل از هر چیز فایل mongod.exe رو اجرا کنید تا مطمئن بشیم سرور به درستی کار میکنه، بعضی وقتا این سرویس توی بکگراند اجرا شده پس لازم نیس این اسکریپت رو باز نگه داریم. حالا فایل mongo.exe یا mongo shell رو باز کنید، اول ازتون میخواد string اتصال به سرور دیتابیس رو وارد کنید که پیشفرض همون localhost هست پس فقط اینتر رو بزنید.ساخت دیتابیسبصورت پیشفرض مانگو یه دیتابیس به نام test واستون ساخته و هر دستوری وارد کنید داخل این دیتابیس اعمال میشه. با دستور show dbs میتونید لیست دیتابیس ها رو ببینید.3 تا دیتابیس اول یعنی admin و config و local از قبل توسط مانگو ساخته شده اند. حالا اگه بخوایم از هر  کدوم از این دیتابیس ها استفاده کنیم و یا یه دیتابیس جدید بسازیم از دستور use استفاده می کنیم.اینجا با دستور use virgool یه دیتابیس جدید به نام virgool ساختم و سوییچ کردم به اون. چون virgool از قبل وجود نداشت اون رو برام ساخت، اگر دستور show dbs رو دوباره بزنید می بینید که به لیست دیتابیس ها اضافه شده.حذف دیتابیسبرای حذف دیتایس میتونید از دستور ()db.dropDatabase استفاده کنید.قابلیت auto complete هم توی shell وجود داره و میتونید ازش استفاده کنید، مثلا با نوشتن db.dropD و زدن دکمه تب دستور بالا کامل میشه. https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-3-%D9%86%D8%B5%D8%A8-%D9%88-%D8%B1%D8%A7%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C-eu1ys2yqfmbi </description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Tue, 26 Jul 2022 06:01:43 +0430</pubDate>
            </item>
                    <item>
                <title>دوره آموزش مانگو دی بی: قسمت 3 - نصب و راه اندازی</title>
                <link>https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-3-%D9%86%D8%B5%D8%A8-%D9%88-%D8%B1%D8%A7%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C-eu1ys2yqfmbi</link>
                <description> نصب و راه اندازی مانگو دی بیتوی ادامه سری آموزش های مانگو دی بی میخوایم این دیتابیس و ابزارهای مورد نیازش رو در ویندوز 10 نصب کنیم.ابتدا وارد لینک زیر از وبسایت رسمی mongo بشین و آخرین نسخه community server رو با فرمت msi  دانلود کنید:https://www.mongodb.com/try/download/communityیا میتونید نسخه 5.0.6 رو مستقیما از این لینک دانلود کنید:https://fastdl.mongodb.org/windows/mongodb-windows-x86_64-5.0.6-signed.msiفایل نصب رو اجرا کنید و next رو بزنید:اگر میخواین مسیر پیشفرض نصب رو تغییر بدین رو custom کلیک کنید، من توی درایو d نصب می کنم:تنضیمات بعدی رو تغییر ندید و next رو بزنید:اگر نمی خواین نرم افزار mongo compass رو نصب کنید تیک زیر رو بردارید، compass یک ابزار gui برای کار با مانگو هست و پیشنهاد می کنم نصب کنید، احتمالا در آموزش های بعدی نگاهی بهش بندازیم.صبر کنید تا نصب برنامه تموم بشه. حالا به پوشه ای که مانگو رو نصب کردین برید. پوشه bin فایل های زیر رو داره:اسکریت mongod برای راه اندازی سرور دیتابیس و اسکریپت mongo برای اجرای دستورات client است. اگر فایل mongod رو اجرا کنید (میتونید با ابزار command prompt هم اون رو اجرا کنید) می بینید که ارور میده. این خطا بخاطر اینه که فولدری به آدرس data/db توی روت درایو ما پیدا نمیکنه، پس ما باید این فولدر رو بسازیم. من چون مانگو رو توی درایو d نصب کردم پس توی روت این درایو یک فولدر به نام data و داخل اون یه فولدر دیگه به نام db میسازم. شما اگر در درایو دیگری مثل c مانگو رو نصب کردین این مرحله رو باید داخل این درایو انجام بدین. حالا اگه فایل mongod رو اجرا کنین می بینید که به درستی ران میشه و ارور نمیده.حالا بدون این که اسکریپت قبلی رو ببندید، فایل mongo رو اجرا کنید. می بینید که وارد shell دیتابیس شده و الان میتونید دستورات دیتابیس خودمون رو وارد کنیم. اگر دستور show dbs رو بزنید، دیتابیس هایی که داخل  مانگو هستند رو میتونید ببینید، این دیتابیس ها پیشفرض توسط خود مانگو ساخته شده اند.-خب ابزار ما به درستی نصب شد، اگر میخواین که هر دفعه وارد فولدر نصب نشین و فایل های بالا رو اجرا کنید میتونید آدرس فولدر رو به path ویندوز اضافه کنید و اونا رو با command prompt اجرا کنید. برای این کار توی منو ویندوز سرچ کنید Environment Variables و توی تب advanced منوی Environment Variables رو باز کنید. روی path کلیک کنید و edit رو بزنید.حالا آدرس فولدر bin رو به آخر لیست اضافه کنید و ok رو بزنید. حالا این فولدر به صورت سراسری برای سیستم تعریف شده و توی command prompt دستورات mongo و mongod قابل اجرا هستند.نصب Mongo Shellمیتونید ابزار mongo shell رو از لینک زیر دانلود و نصب کنید، این ابزار یک سری ویژگی های اضافه مثل syntax highlighter داره و میتونید به جای mongo.exe از اون استفاده کنید، در کل نیازی به نصبش نیست و همون اسکریپت پیشفرض کار مارو راه میندازه.https://www.mongodb.com/try/download/shellhttps://downloads.mongodb.com/compass/mongosh-1.2.2-x64.msi https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-2-%DA%86%D8%B1%D8%A7-%D8%A7%D8%B2-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%DA%A9%D9%86%DB%8C%D9%85-jj7gnexjgfhp </description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Mon, 25 Jul 2022 11:39:20 +0430</pubDate>
            </item>
                    <item>
                <title>دوره آموزش مانگو دی بی: قسمت 2 - چرا از مانگو استفاده کنیم؟</title>
                <link>https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-2-%DA%86%D8%B1%D8%A7-%D8%A7%D8%B2-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%DA%A9%D9%86%DB%8C%D9%85-jj7gnexjgfhp</link>
                <description>چرا از مانگو استفاده کنیم؟بعد از قسمت مقدمه حالا میخوایم ببینیم اصلا جه دلیلی برای استفاده از مانگو دی بی و کلا دیتابیس های nosql است؟به طور کلی نمیشه گفت nosql از sql بهتره و باید با توجه به پروژه بهترین دیتابیس رو انتخاب کنیم. در پروژه های بزرگ هم معمولا از چند نوع دیتابیس استفاده میشه تا به بهترین نتیجه برسیم. ولی در ادامه به طور کلی میخوایم بررسی کنیم چه زمانی از دیتابیس های رابطه ای و چه زمانی از دیتابیس های غیر رابطه ای استفاده کنیم.چه زمانی از SQL استفاده کنیم؟با کوئری ها و گزارش های پیچیده سر و کار داریم. توی sql میتونیم با یک اسکریپت داده های مختلف در جدول های مختلف رو با هم دریافت کنیم. توی nosql رابطه ای بین data type ها تعریف نمی شود، میتونیم کوئری بسازیم ولی کندتر از sql عمل می کند.انتقال داده (Transaction) های سنگین و بزرگ دارید. از آنجایی که دیتابیس های رابطه ای از قاعده ACID پیروی می کنند. برای تغییرات سنگین و زیاد در داده های پایگاه داده بهتر عمل می کنند.به دنبال تغییرات زیاد نیستید. اگه با داده های باحجم بالا و یا data type های زیاد سر و کار ندارید، استفاده از دیتابیس های nosql مزیتی به حساب نمیاد.چه زمانی از NoSQL استفاده کنیم؟به طور مداوم ویژگی ها و data type های جدید به پایگاه داده اضافه می کنید. اگر داده های برنامه از شماتیک خاصی پیروی نمی کنند و با پیشرفت پروژه تغییرات زیادی در آن اعمال خواهید کرد.انسجام داده ها برایتان اولویت ندارد. به طور کلی اگر اصول ACID برایتان اولویت ندارد، به عنوان مثال میخواهید یک شبکه اجتماعی بسازید که اگر کاربر یک پست جدید منتشر کند، لازم نیست در یک زمان واحد آن پست به بقیه نشان داده شود.دیتابیس های رابطه ای به صورت vertically scale up هستند یعنی با بزرگتر شدن دیتابیس و برنامه تون نیاز دارید که برای سروری که آن دیتابیس را اجرا می کند منابع (RAM و Memory) بیشتری مهیا کنید ولی دیتابیس های nosql میتوانند به صورت horizontally گسترش پیدا کنن و از چند سرور با منابع کمتر در کنار هم به صورت توزیع شده استفاده کنید.در رابطه با دیتابیس ها نکات دیگری هم هست که از حوصله ی این آموزش خارجه و اگر علاقه دارید خودتون در موردش مطالعه کنید. https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-1-%D9%85%D9%82%D8%AF%D9%85%D9%87-cnd1pxps4iy7 </description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Sat, 23 Jul 2022 06:59:00 +0430</pubDate>
            </item>
                    <item>
                <title>دوره آموزش مانگو دی بی: قسمت 1 - مقدمه</title>
                <link>https://virgool.io/@modos-coding/%D8%AF%D9%88%D8%B1%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%A7%D9%86%DA%AF%D9%88-%D8%AF%DB%8C-%D8%A8%DB%8C-%D9%82%D8%B3%D9%85%D8%AA-1-%D9%85%D9%82%D8%AF%D9%85%D9%87-cnd1pxps4iy7</link>
                <description>مانگو دی بی (mongodb) یک دیتابیس nosql است که بر اساس یک data model به ما اجازه می دهد تا یک ساختار درختی برای روابط داده ها بسازیم. بر خلاف دیتابیس های sql مثل mysql که داده ها ساختار جدولی داشتند، در مانگو داده ها به شکل یک document جیسون (json) مانند هستند که میتوانیم برای آن ها schema هم تعریف کنیم. همانند جیسون، document ها هم ساختار key-value دارند. نمونه ای از یک document مانگو رو در ادامه مشاهده می کنید.document - mongodbدیتابیس های nosql (مثل مانگو) با دیتابیس های sql (مثل mysql) تقریبا مفاهیم مشابه ای دارند ولی با اصطلاحات متفاوت که در ادامه توضیح میدم.کالکشن (collection)یک کالکشن مجموعه ای از document هاست. معادل آن در دیتابیس های RDBMS یا همان رابطه ای جدول است. کالکشن ها لازم نیست ساختار (schema) مشخصی داشته باشند (بر خلاف جدول در دیتابیس های رابطه ای که باید ستون های آن را تعریف کنیم و داده ها باید یک ساختار مشخص داشته باشند).سند (document)سند مجموعه ای از key-value هاست که داده های خود را در آن ذخیره می کنیم (مانند عکس بالا). سند ها ساحتار داینامیک دارند یعنی لازم نیس سند های داخل یک کالکشن ساختار یکسانی داشته باشند. معادل سند در دیتابیس های رابطه ای Row است.در عکس زیر اصطلاحات معادل دیتابیس های رابطه ای و غیر رابطه ای را می بینید.دیتابیس های رابطه ای و غیر رابطه ایدر مانگو دی بی فیلد id_ به عنوان کلید اصلی (primary key) برای هر سند در نظر گرفته می شود، میتوان این آی دی را دستی مقدار دهی کرد و در عیر این صورت مقداری رندوم و یونیک توسط خود مانگو به آن داده می شود. مقداری که خود مانگو در نظر می گیرد از جنس ObjectID است و 12 بیتی است، 4 بیت اول آن timestamp است، 3 بیت بعدی شناسه ماشین، 2 بیت بعدی شناسه سرور مانگو و 3 بیت آخر یک عدد incremental است.قسمت بعدی به زودی منتشر میشه.کانال یوتیوب من:https://www.youtube.com/channel/UC_FNvEg2hnl0kiceK3SaUYAگیتهاب من:https://github.com/modos</description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Fri, 22 Jul 2022 05:17:33 +0430</pubDate>
            </item>
                    <item>
                <title>ریموت آپلود در گوگل درایو ( آپلود با لینک )</title>
                <link>https://virgool.io/@modos-coding/remote-upload-google-drive-avsgs4lx7nvz</link>
                <description>گوگل درایو - آپلود از لینکریموت آپلود ( Remote Upload ) یا آپلود از لینک یعنی یک فایل که روی یک وبسایت دیگه هست رو با استفاده از لینک دانلودش به هاست خودمون انتقال بدیم. این یه قابلیت خیلی مهم و حیاتی برای وبسایت های دانلود فیلم و نرم افزار هست و امروز با هم می بینیم که توی Google Drive هم می تونیم این کار رو انجام بدیم. البته خود گوگل درایو این قابلیت رو مستقیم در اختیارمون نمیذاره و باید با استفاده از Google Colab این کار رو انجام بدیم که خیلی ام راحته.با ترکیب گوگل درایو و کولب کار های جالبی  میشه انجام داد که آموزش های اونا رو قبلا نوشتم:هاست نامحدود و رایگان با گوگل درایو ( دانلود فایل های گوگل درایو با لینک مستقیم )دانلود ویدیو های یوتیوب با پایتون و گوگل کولبدانلود تورنت با لینک مستقیم - رایگان و نامحدودحالا بریم سراغ آموزش امروز، اگه از متن خوشتون نمیاد می تونید ویدیوی این آموزش رو از یوتیوب هم ببینید:https://youtu.be/WOCfEB0GDzcاول وارد سایت google colab بشید و وارد حساب کاربری خودتون بشید ( همون جیمیل ).بعد یه notebook جدید بسازید. حالا اول باید گوگل درایو خودمون رو به کولب وصل یا mount کنیم پس تکه کد زیر رو بنویسید و اجرا کنید:from google.colab import drive
drive.mount(&#039;/content/drive&#039;)بهتون یه لینک میده که واردش میشید و کد api ای که بهتون میده رو وارد کادر میکنید، بعدش enter رو بزنید.حالا یه فیلد جدید بسازید و کد زیر رو وارد کنید:!wget -P /content/drive/MyDrive/newFolder/آدرس جلوی P- آدرس مکانی توی گوگل درایو تون هست که میخواین فایل اونجا ذخیره بشه پس بعد از /MyDrive/ رو میتونید به دلخواه تغییر بدین.حالا جلوی همون کد، لینک دانلود اون قایلی که میخواین کنتقل کنید به گوگل درایو رو بنویسید، من اینجا یه قایل mp3 رو قرار دادم ولی هر نوع فایلی میتونه باشه، فیلم، عکس، پی دی اف و ....!wget -P /content/drive/MyDrive/newFolder/ https://www.bensound.com/bensound-music/bensound-hey.mp3حالا کد رو اجرا کنید و می بینید که خیلی سریع فایل رو دانلود کرد:حالا اگه برید توی حساب گوگل درایو خودتون می بینید که فایل تون انتقال داده شده:</description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Tue, 03 Aug 2021 12:46:52 +0430</pubDate>
            </item>
                    <item>
                <title>هاست نامحدود و رایگان با گوگل درایو ( دانلود فایل های گوگل درایو با لینک مستقیم )</title>
                <link>https://virgool.io/@modos-coding/free-unlimited-host-google-drive-rzcaant9gxxx</link>
                <description>هاست نامحدود و رایگان گوگل درایوهمه میدونیم که گوگل درایو یه فضای 15 گیگ رایگان در اختیارمون میزاره که میتونیم فایل های خودمون رو آپلود کنیم و هر موقع بخوایم بهش دسترسی داشته باشیم و حتی لینک دانلود و مشاهده اون ها رو در اختیار دیگران قرار بدیم. خب وقتی میتونیم خیلی راحت اکانت جیمیل جدید بسازیم و یه گوگل درایو جدید و بازم یه 15 گیگ رایگان دیگه برای اشتراک گذاری فایل هامون داشته باشیم، چرا از این قابلیت به عنوان یه هاست دانلود برای وبسایت مون استفاده نکنیم؟طبق عکس بالا روی فایل دلخواهتون کلیک راست کنید و گزینه Get Link رو انتخاب کنید. حالا در پنجره ی باز شده گزینه ی Restricted رو به Anyone with the link تغییر بدید، حالا میتونید لینکی که ساخته شده رو کپی کنید و با باز کردن اون لینک هر کسی میتونه فایل شما رو دانلود کنه.خب تا الان که همه چی اوکی بوده، ولی خب وقتی لینک بالا رو باز کنید با همچین چیزی روبرو میشین:وقتی میخواین فایل رو دانلود کنید، گوگل درایو جزئیات اون فایل رو بهتون نشون میده و یه جورایی جلوگیری میکنه از این که فایل بصورت مستقیم دانلود بشه. خب اگه یه سایت داشته باشیم و بخوایم کاربر فایل هایی که در اختیارش قرار میدیم رو مستقیم دانلود کنه، دیدن همچین صحنه ای قطعا خوشایند نخواهد بود.خب راه حل چیه؟شما میتونید یه کاری کنید که این صفحه رو دور بزنید و لینک دانلود مستقیم فایل رو بدست بیارید، نه تنها میتونید از گوگل درایو به عنوان هاست دانلود وبسایت تون استفاده کنید، حتی میتونید به عنوان مثال یه اپلیکیشن استریم موزیک یا فیلم مثال اسپاتیفای و نتفلیکس درست کنید که موزیک ها و فیلم هایی که توی گوگل درایو آپلود کردین رو استریم کنید، و خیلی کارای دیگه اونم رایگان!!!!ادامه ی این آموزش رو میتونید از یوتیوب تماشا کنید:https://youtu.be/7Fh40jVId9s</description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Sun, 04 Jul 2021 00:57:52 +0430</pubDate>
            </item>
                    <item>
                <title>دانلود ویدیو های یوتیوب با پایتون و گوگل کولب</title>
                <link>https://virgool.io/coderlife/download-youtube-python-tfsneqmmlf9n</link>
                <description>دانلود ویدیو های یوتیوب رایگان و نامحدودتوی این پست میخوایم با استفاده از پایتون و گوگل کولب و کتابخانه ی pytube ویدیو های دلخواه خودمون رو از یوتیوب دانلود کنیم. اگر نمی دونید کولب چیه و چطوری باهاش کار کنید به پست قبلی من یعنی دانلود فایل های تورنت به صورت رایگان مراجعه کنید.گام 1: وارد آدرس colab.research.google.com و یک notebook جدید درست کنید.گام 2: با استفاده از دستور زیر کتابخانه ی pytube رو دانلود کنید:!pip install pytubeگام 3: با استفاده از دستورات زیر کتابخانه را ایمپورت کنید به پروژه و به جای url آدرس ویدیویی که میخواین دانلود کنید رو وارد کنید:from pytube import YouTube
video = YouTube(&amp;quoturl&amp;quot)گام 4: با دستور زیر رزولوشنی که میخواین دانلود کنید رو انتخاب کنید:download = video.streams.filter(res=&amp;quot1080p&amp;quot)گام 5: حالا با اجرای تکه کد زیر ویدیوی شما در کولب دانلود می شود و میتونید در قسمت files اون رو مشاهده و روی سیستم خودتون دانلود کنید:download.first().download()در ضمن میتونید ویدیو رو توی گوگل درایو هم دانلود کنید، آموزش ویدیویی و سورس کد کامل رو از کانال یوتیوب ببینید:https://www.youtube.com/watch?v=pOHf-duNK4c</description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Fri, 16 Apr 2021 00:00:54 +0430</pubDate>
            </item>
                    <item>
                <title>دانلود تورنت با لینک مستقیم - رایگان و نامحدود</title>
                <link>https://virgool.io/@modos-coding/convert-torrents-to-direct-links-q523t2medzny</link>
                <description>دانلود تورنت با لینک مستقیم - رایگان و نامحدودخیلی وقت ها پیش اومده که فایل تورنتی که میخوایم دانلود کنیم ناقص باشه و یا نگران این باشیم که فایل ها ویروسی باشند، معمولا هم سرعت دانلود تورنت کمتر از دانلود مستقیم است. بهترین راه اینه که تورنت رو به لینک مستقیم تبدیل کنیم، ولی مشکل اینجاست که سایت هایی که این خدمات رو انجام میدن اکثرا رایگان نیستن و یا نسخه ی رایگان اون ها محدودیت های زیادی داره. امروز میخوایم با استفاده از گوگل درایو و کولب و البته پایتون فایل های تورنت مون رو رایگان به لینک مستقیم تبدیل کنیم.اصلا لازم نیست که پایتون و برنامه نویسی بلد باشید و فقط کافیه طبق آموزش مراحل رو اجرا کنید.لینک دانلود سورس رو کد آخر پست گذاشتم.تماشای این آموزش در یوتیوب:https://youtu.be/_XibAt5Wwnwکولب ( colab ) چیه؟خیلی ساده بخوام بگم کولب هم یه سرویس از گوگله که میشه باهاش کد های پایتون رو اجرا کرد، بیشتر ازش برای یادگیری ماشین و تحلیل داده استفاده میشه ولی همینطور که می بینید کارای جالب دیگه ای هم میشه باهاش انجام داد. در ضمن نسخه ی رایگان کولب 12 گیگابایت رم و 80 گیگابایت فضای اجرای کد بهتون میده که برای خیلی از کارها کافیه.کاری که انجام میدیم اینه که با استفاده از یه اسکریپت پایتون و اجرای اون در کولب فایل تورنت مون که در اینجا یک فیلمه دانلود میشه و به طور خودکار به حساب گوگل درایو ما انتقال داده میشه و بعد از اون میتونیم از طریق گوگل درایو به صورت مستقیم و سرعت بالا دانلود کنیم.قبل از شروع کار چندتا نکته بگم:گوگل درایو در حالت رایگان 15 گیگ ظرفیت داره و نمی تونید فایل های بیشتر از این ظرفیت رو از طریق کولب دانلود کنید.اگه فایلی رو در گوگل درایو به صورت public در بیارید و این فایل قانون کپی رایت رو نقض میکنه، ممکنه بعد از یه مدتی گوگل اون فایل رو پاک کنه یا حتی بدتر از اون حساب تون رو مسدود کنه.قدم اول:توی حساب گوگل تون لاگین کنید و وارد آدرس https://colab.research.google.com بشین. با توجه به شکل زیر روی گزینه new notebook کلیک کنید تا یه سند جدید براتون باز بشه.تبدیل تورنت به لینک مستقیمقدم دوم:حالا کد زیر رو داخل این بخش طبق تصویر وارد کنید و فلش سفید رنگ رو بزنید.دانلود تورنت با لینک مستقیمحالا یک لینک به شما داده میشود، روی این لینک کلیک کنید و در صفحه ی باز شده اکانت گوگل خودتون رو مشخص کنید و بعد allow رو بزنید، یه کد بهتون میده، این کد رو کپی کنید و توی کادر enter your authorization code وارد کنید و enter رو بزنید.دانلود تورنت با پایتونطبق عکس زیر اگه ماوس رو زیر کادر قرار بدین دو تا گزینه بهتون نشون میده به نام code و text که باید روی code کلیک کنید تا یه کادر دیگه مشابه قبلی براتون بیاره.کولبحالا توی کادر جدید تکه کد زیر رو وارد می کنیم تا کتابخانه ی libtorrent در کولب نصب بشه.قدم سوم:حالا دوباره مثل یه کادر code جدید بسازید و کد های زیر رو داخل اون وارد کنید، این تکه کد قراره فایل تورنت ما رو دانلود کنه، اگه پایتون بلد باشید میتونید کد رو متوجه بشین و خیلی ساده س ولی اگه بلد نیسیتید اهمیتی نداره و منم واسه پیچیده تر شدن موضوع توضیح نمیدم.توجه کنید که توی کد یه قسمت نوشته link و جلوی اون آدرس magnet فایل تورنت ما که یک فیلم است داخل دو تا &quot; نوشته شده. قبل از اجرای کد باید آدرس magnet تورنت خودتون رو جایگزین کنید و تمام، حالا کد رو اجرا کنید.حالا کولب شروع به دانلود فایل و انتقال اون به گوگل درایو میکنه، سرعت کولب بالاست و به 100 مگابایت هم میرسه ولی سرعت دانلود تورنت بستگی به خود فایل و seed هاتون داره.وقتی دانلود تموم شد این پیام زیر کدتون نشون داده میشه:حالا اگه توی گوگل درایو برید می بینید که یه پوشه ی جدید به نام Torrent ایجاد شده و فایل دانلود شده ی شما داخل این پوشه است و میتونید اون رو به صورت مستقیم دانلود کنید.کانال تلگرام من : https://t.me/modos_devدانلود سورس کد برنامه دانلود تورنت با لینک مستقیم - پایتونحمایت از طریق IDPay </description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Wed, 03 Feb 2021 21:40:08 +0330</pubDate>
            </item>
                    <item>
                <title>مثل حرفه ای ها یوتیوب رو تماشا کنید!</title>
                <link>https://virgool.io/@modos-coding/youtube-shortcut-hotkeys-yyrzzevnx0gd</link>
                <description>میانبر های یوتیوباگه مثل من در روز زیاد وقت تون رو با یوتیوب میگذرونید، قطعا کلید های میانبری که یوتیوب برامون گذاشته رو باید بدونید و استفاده کنید تا لذت تماشای ویدیوهای آموزشی و سرگرم کننده براتون چند برابر بشه.اول از همه این که چجوری میتونیم جدول این میانبر ها رو پیدا کنیم؟خب خیلی راحت وقتی که  در حال تماشای یک ویدیو هستین میتونید با کلید های ترکیبی / + shift جدولی که در شکل بالا می بینید رو باز کنید.واسه بستن این پنجره هم کلید esc رو بزنید.حالا در ادامه میخوایم با یه سری دیگه از این کلید های میانبر آشنا بشیم.باز کردن فیلد جستجو ( کلید میانبر : / )با کلید / میتونید فیلد جستجو رو طبق شکل زیر باز کنید.یوتیوبمیتونید با کلید های بالا و پایین نتیجه هایی که واستون میاره رو هم انتخاب کنید و کلید enter رو بزنید.با کلید esc هم بسته میشه.توقف و پخش ویدیو ( کلید میانبر : k )تمام صفحه کردن ویدیو (کلید میانبر : f)خفه کردن صدا ( کلید میانبر : m )تغییر سرعت ویدیو:یوتیوب 8 تا گزینه ی playback داره:0.25x0.5x0.75xNormal1.25x1.5x1.75x2.0xمیتونید بسته به هدفتون یکی از این 8 مدل سرعت رو انتخاب کنید.آموزش یوتیوبکلید های ترکیبی . + shit سرعت رو 25 درصد بیشتر میکنه و کلید های ترکیبی , + shift سرعت رو 25 درصد کمتر میکنه.فریم به فریم:گاهی وقتا میخوایم ویدیو رو فریم به فریم تغییر بدیم، برای این کار با کلید space یا k ویدیو رو نگه دارید، بعد با کلید های . ( نقطه ) و , ( ویرگول انگلیسی ) جلو و عقب کنید.پرش ویدیو:کلید 0 شما رو میبره به اول ویدیو، کلید 5 شمارو میبره به وسط ویدیو و کلید 9 شما رو میبره به 10 درصد آخر ویدیوزیرنویس:با کلید c میتونید زیرنویس ویدیو ( البته اگه داشته باشه ) رو فعال یا غیر فعال کنید.توی این پست سعی کردم کلید های میانبری رو که کمتر به چشم میومدن رو معرفی کنم، البته که کلید های میانبر دیگه ایم هم یوتیوب در اختیارتون گذاشته.برای مورد آخر ( و شاید باحالترین ) میتونید روی ویدیو راست کلیک کنید و گزینه ی stats for nerds رو انتخاب کنید تا اطلاعات ویدیو و اینترنت تون رو ببینید:منبع : https://www.freecodecamp.org/news/youtube-keyboard-shortcut-hotkey-list-repeat-speed-subtitles/ کانال تلگرام من : https://t.me/modos_dev</description>
                <category>modos coding</category>
                <author>modos coding</author>
                <pubDate>Sat, 17 Oct 2020 20:21:02 +0330</pubDate>
            </item>
            </channel>
</rss>