آموزش تکنولوژی MEAN

با سلام خدمت شما عزیزان
من بهزاد خلیلی و دوست خوبم حمیدرضا صدیق می خواهیم در این وبلاگ تکنولوژی MEAN را یه فارسی زبانان علاقه مند معرفی کنیم.
فریم ورک MEAN یک فریم ورک کامل (Full Stack) جاوا اسکریپت برای توسعه دهندگان وب است که در سالهای اخیر توانسته در برابر LAMP خودی نشان دهد.

طبقه بندی موضوعی
بایگانی
نویسندگان

 

 

با سلام خدمت شما عزیزان

اول از همه بابت این تاخیر طولانی معذرت می خوام، این چند وقت خیلی سرم شلوغ شده و هر کاری کردم نتونستم وبلاگ و به روز کنم.

خوب امیدوارم که شما تو این مدت کار کرده باشید و به کل بیخیالش نشده باشید.

خوب در آموزش قبلی نحوه بر قراری شرط ها را آموزش دادم، حال می خواهم دستورات  AND  و OR را آموزش دهم.

گذاشتن , (کاما) در بین شرط ها به معنی AND می باشد  و برای دستور OR ساختار جدا داریم که در ادامه همین قسمت آموزش می دهم.

 

 

 

خوب همانطور که در بالا مشاهده می کنید به راحتی توانستیم AND را پیاده سازی کنیم، برای OR هم راحت است اما باید ساختار آن را دانست.

خوب قبل از اینکه برم سراغ OR و ترکیب AND و OR اجازه می خواهم یک نکته را در JSON عرض کنم.

آرایه در JSON درون براکت قرار می گیرد  ساختار کلی آن به شکل زیر است :

 

 

 

 

"Fieldname":[ {"Key":"Value"},{"Key":"Value"}]

 

 

خوب حالا ساختار OR:

 آموزش Mongo DB

 

 

خوب در تصویر بالا نمونه OR  و مشاهده می کنید، اما اصلا نترسید بعد 2 ساعت کار کردن یاد می گیرین که چی به چی هست.

 

 

Db.CollectionName.find( {$or: [ {expression1},{expression2},…{expression-N} ] } )

 

دوستان حواستون به یه نکته باشه الان خود من 1 ساعت سرکار بودم سر اینکه حواسم به Type ذخیره شده نبود، ما تو SQL وقتی Type آن  عدد باشه اگر با "" نوشته شود، مشکلی نداره و جواب می ده، حتی اگر شما نوع فیلد شما رشته باشد اما  درون آن فیلدتان فقط عدد باشد مشکلی نداره و خود SQL این تبدیل و انجام می دهد، اما من الان با این دید داشتم کوئری می زدم و نتیجه نمی گرفتم که آموزش های خودم و خوندم یادم افتاد که این نکته در اینجا مهمه.

دوستان نکته آخر اینکه من از قصد دارم دستورات find و کم کم می گم که شما کار کنید، چون این دستور خیلی مهم و دارای کارایی خیلی زیادی است.

خدانگهدار

 

 

مرجع سوالات آیین نامه راهنمایی و رانندگی و کنکور و وکالت و ...

 

بهزاد خلیلی
۰۱ دی ۹۴ ، ۲۳:۲۲ موافقین ۳ مخالفین ۰ ۳ نظر

با سلام خدمت شما عزیزان

در آموزش قبلی با ساختار کلی دستور find و اینکه چگونه خروجی را مرتب کنید آشنا شدید، امروز می خواهیم در دستور find شرط بگذاریم. شرط گذاشتن در Mongo DB کلا با چیزی که در SQL بلد هستید متفاوت است.

خوب من اول می خوام عملگرد ها  را معرفی کنم بعدا در Mongo DB اجرا کنم.

عملگر

Mongo DB

SQL

Equality – مساوی

{"Key": "Value"}

Where key='Value'

Less Then – کوچکتر از

{"Key":{$lt : "Value"}}

Where Key<'Value'

Less Then Equals – کوچکتر مساوی

{"Key":{$lte : "Value"}}

Where Key<='Value'

 Greater Then – بزرگتر از

{"Key":{$gt : "Value"}}

Where Key>'Value'

Greater Then Equals – بزرگتر مساوی

{"Key":{$gte : "Value"}}

Where Key>='Value'

No Equals – نا مساوی

{"Key":{$ne : "Value"}}

Where key!='Value'

 

خوب همان طور که در جدول بالا ملاحظه می کنید، مخفف نام عملگرد در دستورات استفاده می شود، البته به غیر از مساوی. من بار اول که این عملگرد ها را دیدم کلا پشیمون شدم از خوندم Mongo DB اما بعد که فهمیدم این عملگردها سر کلمه چه کلمه هایی هستند خیالم راحت شد، چون فهمیدم نیاز به حفظ کردن نداره.


تمامی سند هایی که در مجموعه Letter ذخیره شده است:



سند هایی را نمایش دهد که مقدار LetterNo آنها برابر با 1 است :



سند هایی را نمایش دهد که مقدار LetterNo آنها کوچکتر از 2 است:



سند هایی را نمایش دهد که مقدار LetterNo آنها کوچکتر مساوی از 2 هستند:



سند هایی را نمایش دهد که مقدار LetterNo آنها بزرگتر از 4 هستند:



سند هایی را نمایش دهد که مقدار LetterNo آنها بزرگتر مساوی از 4 هستند:



سند هایی را نمایش دهد که مقدار LetterNo آنها مخالف 4 است:



خوب دوستان این قسمت هم به اتمام رسید، چون دستور find خیلی مهم است می خواهم چند قسمت شود که هم شما بیشتر تمرین کنید هم من بتونم بهتر توضیح دهم.

فعلا خدا نگهدار

بهزاد خلیلی
۱۳ آذر ۹۴ ، ۱۲:۴۷ موافقین ۳ مخالفین ۰ ۱ نظر

سلام دوستان از اینکه بازم تاخیر داشتم معذرت می خوام.

امروز می خواهم راجب دستور find خدمتتان صحبت کنم، این دستور معادل دستور select در SQL Server است، اما به جرات می تونم بگم با قدرت بیشتر. زمانی که من SQL Server و یاد می گرفتم استادم (مهندس وحید عباس زاده) می گفت SQL کار خوب کسی هست که بتونه Select خوبی بنویسه، واقعا درستش هم همین بود و هست، شما هرچیزی که بخواهی بنویسی که پیچیده است مجبوری با Select بنویسی، مثلا یک Update با کلی ریزه کاری یا SP یا FN و ... . در Mongo DB هم همینطور است، Find دستور خیلی مهمی است و خیلی خیلی خیلی ریزه کاری داره بخاطر همین این دستور و می خوام تو چند قسمت آموزش بدم.

خوب دوستان اول دستور و به صورت های ساده عرض می کنم و در قسمت های بعدی نکات دیگر را خدمتتان عرض می کنم.


 

 

خوب همان طور که ملاحظه می کنید دستور بالا تمامی سند هایی که در مجموعه letter ما ذخیره کرده بودیم و نمایش داد. اما چند نکته اول اینکه ما در درج سند ها ستون _id نداشتیم اما در نمایش همیچین ستونی داریم، دومین موردی که الان نیاز هست بدونید اینه که دستور بالا درسته تمامی اطلاعات را نمایش می دهد اما واضح نیست و اطاعات به قولی تو حلق هم هستن و موقع خوندن چشم امکان خطا دارد.

راجب نکته اول باید خدمتتان عرض کنم که شما هنگام درج هر سند خود Mongo DB به صورت پیش فرض یک _id  به آن تعلق می دهد که یک عدد غیر قابل تکراری است. شما نمی توانید دو سند ثبت کنید که _id آن با دیگری یکی باشد.

 

خطای بالا مربوط به این است که می خواستیم دو سند را با یک _id ذخیره کنیم.

 

نکته ی دومی که همون اول عرض کردم که نوع نمایش به صورت پیش فرض بدون اختار است که باعث خطای دید می شود. برای حل این مشکا می توان از pretty() استفاده کرد.

 

فکر می کنم تصویر بالا گویای کامل جریان است ! چقدر سند ها مرتب و با یه ساختار منظم نمایش داده شدند.

خوب امروز خیلی بحث و سنگین نمی کنم که بتونید هم چند مورد و شما راحت بتونید تست کنید و نتیجه را در دستگاه خودتان مشاهده کنید.

خدا نگهدار

 

 

بهزاد خلیلی
۱۰ آذر ۹۴ ، ۲۳:۵۸ موافقین ۳ مخالفین ۰ ۲ نظر

سلام دوستان

 

امیدوارم تا این لحظه آموزش هایی که خدمتتان ارائه کرده ام، مفید واقع شده باشد.

در این قسمت می خواهم JSON  و ثبت سند در بانک اطلاعاتی را خدمتتان ارائه کنم.

خوب آموزش خودم را با این سوال شروع می کنم که JSON چیست؟

JSON مخفف کلمات JavaScript Object Notation است. به این معنی که " نشانه گذاری شی در جاوا اسکریپت " است.

برای ساخت عبارات JSON چند قانون ساده وجود دارد :

عبارت های JSON باید میان آکولاد "{}" قرار بگیرند.

        اعضای شی باید با ویرگول "", از هم جدا شوند.

       برای تعریف یک عضو در یک شی، ابتدا باید " نام عضو " سپس " دو نقطه "

              و در پایان  " مقدار "  آن نوشته می شود.

        مقدار می تواند یکی از انواع (عددی، رشته، بولی، آرایه،

              شی و NULL )باشد. سایر  مقادیر باید به صورتی دیگر ذخیره شوند.

       انواع رشته ها باید داخل دو گیومه (")  قرار بگیرند.

 

JSON یک راه مناسب برای نگهداری اطلاعات است و از لحاظ ساختاری شباهت زیادی به XML رقیب قدیمی خود دارد.

 

ساختار JSON را مجموعه ای از (مقدار : نام ) تشکیل می دهد. ساختار مشابه آن در زبان سی شارپ KeyValuePair است.

 

یک مثال خیلی ساده برای درک بهتر موضوع:

 

یک شی با ساختار زیر در سی شارپ داشته باشیم :

class Customer

    {

        public int Id { get; set; }

        public string FirstName { get; set; }

        public string LastName { get; set; }

    }

          ساختار JSON متناظر با آن ( در صورتی که مقدار دهی شده باشد) به صورت زیر است:

{

   "Id":1,

   "FirstName":"John",

   "LastName":"Doe"

}

 

همان طور که در بالا مشاهده می کنید در ساختار JSON تمامی قانون هایی که در بالا ذکر کرده ایم رعایت شده است.

 

خوب حالا میریم سر اصل مطلب ثبت سند در Mongo DB.

 

ساختار کلی دستور :

> db.Collection_Name.insert()

خوب یادتون هست در آموزش قبلی که مربوط به Collection ها بود عرض کردم که ما همیشه نیازی به ساخت مجموعه نداریم؟

 

وارد محیط Mongo DB می شویم :


 

     خوب همین طور که مشاهده می کنید ما یک مجموعه بیشتر نداریم اما سندی که می خواهیم الان ثبت کنیم مربوط به مکاتبات روزانه است و نیاز به مجموعه letter داریم، خوب ما عادت کرده بودیم اول جدول بسازیم بعدا رکورد ثبت کنیم درسته؟اما من در اینجا نمی خوام مجموعه letter رو بسازم! یعنی چی؟ یکم صبر کنید تا با هم یک اتفاق شگفت انگیز رو ببینیم :

 


 

  در تصویر بالا چند تا نکته وجود دارد.همان طور که مشاهده می کنید ما مجموعه letter نداریم اما می خواهیم یک سند در این مجموعه قرار دهیم و دستور Insert  را اجرا کردیم، در اینجا خود Mongo DB چک کرده و متوجه شده که ما همچین مجموعه ای نداریم و اول آن را ساخته سپس آن سند را در مجموعه به ثبت رسانده است.  این امکان Mongo DB خیلی معرکه است.شما فکر کنید بدون اینکه جایی را در نظر گرفته باشید می گید من این سند را می خوام در این مجموعه ثبت کنم، اونم می گه باشه

چشم و میره این کار را انجام می ده!!!!

 

قوانین نام گذاری مجموعه ها:

    نام مجموعه نمی تواند خالی یا NULL باشد.

    نباید دارای پیشوند  system. باشند، زیرا این مجموعه رزرو شده است.

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

 

 

خوب این قسمت آموزش مربوط به قسمت قبلی بود که عرض کردم برای ساخت یک مجموعه 2 را وجود دارد اینم راه دوم و بحث مجموعه به کلی تمام شد.

 

 

   خوب حالا بعد از تعجب کردن راجب مجموعه، تعجب بیشتر آن مربوط به فیلدهای آن سند است، ما الان این مجموعه رو کلا نداشتیم و با دستور ثبت این مجموعه را ساختیم، کی فیلدهای آن را تعریف کردیم؟هیچوقت اینکار را نمی کنیم. قدرت دیتابیس های NoSql در این است که اصلا نیازی به این کار ندارند. می دونم دارید تعجب می کنید اما بذارید یه مثل عمومی بزنم، شما یک حسابدار هستید و فاکتور های فروش شرکت را درون یک زونکن نگه می دارید، شما فاکتوری که پرینت شده را به صورت یکجا و کامل درون زونکن قرار می دهید، اما در برنامه حسابداری برای نگهداری اون اطلاعات یک جدول برای Header فاکتور درست شده، یک جدول برای نام مشتری ها، یک جدول برای آیتم های فاکتور و ..... . این کار یعنی شما فاکتور پرینت شده را تیکه تکیه کنی به هر کدوم یک شماره اختصاص بدی و هر تیکه هم درون یک زونکن قرار بدی. Mongo DB درست و منطقی کار می کند، من خودم از بس SQL کار کرده ام فکر می کردم این عجیب هست اما وقتی بیشتر وقت گذاشتم و خوندم به این نتیجه رسیدم که من اینقدر اون مدلی فکر کردم که از دنیای واقعی به دور شدم و Mongo DB (کلا No Sql ها )داره مثل دنیای واقعی عمل می کند. الان من می تونم خیلی راحت یک سند دیگر با فیلد های متفاوت را در مجموعه letter ذخیره کنم.

 

 

 

حالا خود دستور Insert چه نکاتی دارد؟

 

ترتیب کلید و مقدار آن در سند متفاوت است.(Case-Sensitive  و Type-Sensitive)

 

>db.Collection_Name.Insert({"FirstName":"Behzad",

                                          "LastName":"Khalili"})

>db.Collection_Name.Insert({"LastName":"Khalili",

                                          "FirstName":"Behzad"})

دو سند بالا از نظر Mongo DB کاملا متفاوت می باشند.

 

>db.Collection_Name.insert({"FirstName":"Behzad",

                                          "LastName":"Khalili",

                                           "Age":22})

>db.Collection_Name.insert({"FirstName":"Behzad",

                                          "LastName":"Khalili",

                                          "Age":"young"})

دو سند بالا از نظر Mongo DB کاملا متفاوت می باشند.

 

سندها نمی توانند شامل کلید های تکراری باشند.

>db.Collection_Name.insert({"FirstName":"Behzad",

                                          "FirstName ":"Khalili")

 

شما می توانید یک فیلد را به عنوان آرایه در نظر بگیرید!

 

 

 

همان طور که ملاحظه می کنید فیلد Dayeri به عنوان یک آرایه تعریف شده است. در JSON  برای تعریف یک آرایه از [] استفاده می شود.

 

 این قسمت از آموزش هم به پایان رسید، ما منتظر نظر شما برای بهبود روند آموزشی خود هستیم.

با تشکر   خدا نگهدار

 

بهزاد خلیلی
۰۷ آذر ۹۴ ، ۰۱:۵۹ موافقین ۴ مخالفین ۰ ۴ نظر

سلام دوستان عزیز

   تا به امروز ما سعی کردیم شما را با Mongo DB آشنا کنیم و نحوه نصب و دستورات پر کاربرد و کلی را به شما عزیزان آموزش بدم.

اما از این قسمت به بعد می خواهم دستورات مهم و خدمتتان آموزش بدهم. نحوه آموزشی که من می خواهم شروع کنم به صورت پروژه محور می باشد. یعنی الان یه سناریو برای خودمون تعیین می کنیم و شروع می کنیم به انجام آن  و با چالش های آن روبه رو می شیم و آن ها رو هم رد می کنیم.

سنارویی که می خواهم با هم انجام دهیم :

می خواهیم اطلاعات یک بایگانی را در پایگاه داده خودمون ذخیره کنیم. خوب بایگانی که ما میشناسیم برای سازمانی است که روزی 100 هزار پرونده جدید ثبت می شود و اسناد مختلفی برای ثبت دارد.

خوب ما می تونیم برای اینکار از بانک های RDMBS استفاده کنیم و آن را طوری طراحی کنیم که سندهای مختلف را بتوانیم درونش ثبت کنیم. اما خدا نکنه که بخواهید یه گزارش از سیستم بگیرید می خواهید گریه کنید از پس مجبورید join  بزنید. اما در بانک های NoSql نیاز به این کار ندارید. یعنی حتی نیاز به طراحی کامل بانک اطلاعاتی ندارید. فقط کافیه مجموعه های خود را بسازید. شاید شما هم مثل من چندین سال هست که با  SQL کار کرده اید و این طور فکر کردن و پیاده سازی آن براتون سخت باشه. چون ما عادت کردیم که یه جدول پایه باید داشته باشیم و یه جدول که با اون در رابطه باشه و .... . اما مهم ترین ویژگی بانک های NoSql در این است. بیشتر از این وقت و نمی گیرم و میرم برای شروع کار.

 

اطلاعات سرویس ها  :

اینترنت / اینترانت / MPLS { نام مشترک – نوع سرویس –  شماره قرارداد – تاریخ قرارداد – ظرفیت درخواست شده – دایری {شماره نامه دایری، تاریخ نامه دایری، ظرفیت دایر شده}– مبلغ قرارداد – مدت زمان اجرای قرارداد – نوع ضمانت نامه – مبلغ ضمانتنامه – استان درخواست شده – شهر درخواست شده }

فضا { نام مشترک – نوع سرویس – شماره قرارداد – تاریخ قرارداد – فضا(متر) – مبلغ قرارداد – مدت زمان اجرای قرارداد – نوع ضمانت نامه – مبلغ ضمانتنامه – استان درخواست شده – شهر درخواست شده }

دکل مخابراتی { نام مشترک – نوع سرویس – شماره قرارداد – تاریخ قرارداد – دکل{نوع، زاویه، ارتفاع، قطر} – مبلغ قرارداد – مدت زمان اجرای قرارداد – نوع ضمانت نامه – مبلغ ضمانتنامه – استان درخواست شده – شهر درخواست شده }

مکاتبات روزانه :

                   نام مشترک –نوع سرویس – شماره نامه – تاریخ نامه – سوابق قبلی – سوابق بعدی

 

           خوب فعلا همین اطلاعات برای شروع کافی است. همینطور که مشاهده می کنید سند های بالا هم دارای فیلد ها مشترک هستند اما فیلدهای اختصاصی، طراحی این دیتابیس با بانک های RDMBS امکان پذیر است اما همان طور که بالا عرض کردم کافیه کارفرما یه مدل گزارش خاص از شما بخواهد، من خودم چون به شخصه این تجربه و دارم می دونم چه مشکلاتی پیش میاد.

         

مجموعه هایی که نیاز داریم :

 اطلاعات سرویس ها – اطلاعات مکاتبات روزانه

(یه نکته خیلی جالب من این کار و در حد یه سازمان دولتی بزرگ انجام دادم و الان حدودا یک ساعتی هست دارم فکر می کنم که به چه مجموعه هایی نیاز هست،این کار را در SQL Server با بیش از 6 جدول انجام دادم در صورتی که در اینجا به دو مجموعه بیشتر نیاز نداریم!)

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

روش اول را الان خدمتتان توضیح میدم و روش دوم چون نیاز به یکسری موارد دیگر دارد بعدا توضیح می دهم.

 

خوب همان طور که در بالا مشاهده می کنید، من اول وارد محیط Mongo DB شده ام، سپس دیدم در چه دیتابیسی هستم که چون دیتابیسی نساخته ام پیش فرض در test هستم و چون هنوز سندی را ذخیره نکرده ام در show dbs آن را نمی بینم. خوب این توضیحات برای آموزش های قبلی بود.در خط آخر دستوری نوشته شده با این مظنون :

>  Db.createcollection(

"نام مجموعه",{capped:Boolean,autoIndexID:Boolean,size:Number,max:Number})

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

Capped : اگر مقدار این ویژگی را برابر با True قرار دهیم، یک مجموعه با طول ثابت برای ما می سازد که اگر اندازه آن به حداکثر برسد، به صورت اتوماتیک داده های جدید را جایگزین قدیمی ترین داده ها می کند.در ضمن اگر مقدار این ویژگی را برابر با True قرار دادید، ویژگی Size را هم باید مقدار دهی کنید.مقدار پیش فرض این ویژگی False است.

AutoIndexID : همانطور که از نام این ویژگی معلوم است بر روی فیلد ID به صورت اتوماتیک Index قرار می دهد. مقدار پیش فرض این ویژگی False است.

Size : حداکثر سایز مجموعه به بایت است.

Max : حداکثر سندهایی که می توان درون یک مجموعه قرار داد.

 

خوب با این توضیحاتی که الان یادگرفتیم، متوجه شدیم که در کاری که ما می خواهیم انجام دهیم فقط نیاز به ویژگی AutoIndexID است و باقی ویژگی ها در این پروژه  کاربردی ندارند و مقدار دهی نمی کنیم.

 


خوب در اینجا مجموعه ما باهمان ویژگی که ما می خواستیم به ثبت رسید، اما در اینجا یه کار دیگه هم انجام دادیم. یک بانک اطلاعاتی به نام archive ساختم و یعد مجموعه را درون بانکم ساختم. در آموزش های قبلی گفته بودم که با دستور use  می توانید بین بانک های اطلاعاتی سوئیچ کنید، اما در اینجا می بینید که ما با همان دستور use یک بانک اطلاعاتی جدید ساختیم. متوجه شدید چی شد؟ Mongo DB نیازی به تعریف های از قبل نداره! یعنی شما وقتی از دستور use استفاده می کنید، خود Mongo میره ببینه همچین بانکی وجود دارد یا خیر، اگر وجود نداشته باشد آن را می سازد بعد وارد آن بانک می شود.این ویژگی Mongo DB را به خاطر بسپارید چون هم امکان اشتباه دارد هم اینکه خیلی خیلی به کار می آید.الان من اگر دوباره show dbs را اجرا کنم شما بهتر درک می کنید که چه اتفاقی افتاده است .

 

خوب همین کار را برای letter هم انجام می دهیم.

 

از این به بعد می خواهم در هر آموزش یک دستور و به طور کامل توضیح دهم، اگر فکر می کنید این روش آموزش درست نیست و بهتره از روش دیگری استفاده کنم خواهشا در قسمت نظرات بفرمایید تا اون طوری که شما دوست دارید و فکر می کنید بهتر است آموزش بدهم.

خدا نگهدار

 

 

بهزاد خلیلی
۰۶ آذر ۹۴ ، ۰۱:۴۴ موافقین ۴ مخالفین ۰ ۲ نظر

با سلام خدمت دوستان از اینکه این آموزش یکم طول کشید معذرت می خوام، تمام سعی خودم و می کنم که از این به بعد زود به زود وبلاگ بروز کنم.

خوب بریم سراغ آموزش:

خوب همانطور که در آموزش قبلی خدمتتان توضیح دادم، شما باید فولدری به نام data در ریشه درایو C ایجاد نمایید، اما خیلی از ما ها از این نوع محدودیت ها خوشمون نمیاد، خوب برای این کار باید از سوئیچ --dbpath استفاده کنید.

خوب همانطور که در تصویر بالا مشاهده می کنید ما فولدر Data را در جای دیگر از حافظه تعریف کردیم و به Mongo DB گفتیم که از آن فولدر استفاده کند.

خوب ما از اینجا به بعد شروع می کنیم به گفتن دستورات و هر دستور که نکته ی خاصی داشته باشد در همان جا ذکر می کنیم.

اولین دستور و شاید پر کاربردی ترین دستور، دستور db است. این دستور به شما نشان می دهد که در داخل کدام پایگاه داده هستید.

دستور بعدی که می خواهم خدمتتان عرض کنیم دستور show dbs می باشد. این دستور تمامی پایگاه داده های داخل بانک اطلاعاتی را می توانیم ببنیم. خوب یه نکته! یادتون هست وقتی برای بار اول db  را اجرا کردیم test را دیدیم؟حالا show dbs را که اجرا می کنید باز هم test را می بینید؟نه! پایگاه داده test را خود Mongo DB به ما می دهد اما واقعا فیزیکی وجود ندارد، اگر شما سندی در این پایگاه داده ایجاد نمایید(دستور ایجاد سند را هم می گم) اونوقت مشاهده می کنید کهtest هم در show dbs نمایش داده می شود.

دستور بعدی use {DataBase_Name} می باشد، وظیفه این دستور سوئیچ بین پایگاه های داده است.

دستور پر کاربرد بعدی Show Collections است، این دستور تمام مجموعه های درون پایگاه داده را نمایش می دهد.

آخرین دستوری که می خواهم این جلسه خدمتتان عرض کنم، دستور db.stats() می باشد، این دستور نام پایگاه داده، تعداد مجموعه ها و سند های موجود در پایگاه داده را نمایش می دهد.

خوب به نظرم برای امروز کافیه، شما هم کار کنید و اگر سوالی داشتید به ما بگید که کمکتون کنیم، فعلا خدانگهدار

بهزاد خلیلی
۰۳ آذر ۹۴ ، ۲۱:۴۴ موافقین ۴ مخالفین ۰ ۳ نظر

خوب همان طور که در آموزش قبلی ذکر کردم، در این آموزش می خواهم نحوه نصب و راه اندازی Mongo DB را خدمتتان آموزش بدم :

خوب برای دانلود برنامه Mongo DB بهتره از خود این سایت این کار را انجام دهید زیرا می توانید آخرین نسخه آن را دانلود کنید، اما به علت اینکه این سایت کشور ما را تحریم کرده است می توانید از فیتر شکن استفاده کنید برای عبور از تحریم ها یا از سایت های داخلی آن را دریافت کنید. نصبت Mongo DB یک Extract کردن ساده نیست؛ یعنی چی؟؟

بعد از تموم شدن مرحله نصب شما می توانید به فولدری که در مرحله نصب آدرس دهی کرده بودید مراجعه کنید و کل آن فولدر را cut کنید بعد به مسیر دیگری ببرید و آنجا Past کنید!!!!! متوجه شدید که یک عمل Extract ساده نبوده؟!!!چون به شما قول می دهم که Mongo شما به راحتی و درستی کار خواهد کرد.

خوب از اینجا که مراحل راه اندازی امکان دارد یکم گیج کننده باشد آن ها را به ترتیب ذکر می کنم :

1-      ساخت فولدری به نام data در ریشه درایو   C . (عرض خواهم کرد که چطور این فایل را می توانید تغییر دهید)

2-      ساخت فولدر db در داخل فولدر data

3-      باز کردن محیط Command Prompt

4-      در داخل محیط Command prompt به آدرسی که Mongo DB را در آنجا نصب یا کپی کرده اید بروید.  مثال : C:\Program Files\MongoDB\Server\3.0\bin>  

5-      اجرای دستور Mongod

6-      خوب با اجرای دستور بالا سرور Mongo DB شما فعال شده است، حالا برای اجرای دستورات دیگر نیاز به محیط Command Prompt دیگر داریم.

7-      باز کردن محیط دیگری از Command Prompt

8-      رفتن به مسیری که در مرحله 4 رفته اید

9-      اجرای دستور Mongo

10-   تبریک !!!! شما در محیط اصلی Mongo DB هستید و می توانید برای اطمینان بیشتر دستور db را اجرا نمایید، در خروجی test را نمایش می دهد.

خود Mongo DB برای بار اول پایگاه داده ای را در اختیار شما قرار می دهد به نام test که در آموزش های بعدی به شما ثابت می کنیم که این test به صورت فیزیکی ساخته نشده است.

خوب تا آموزش بعدی فعلا خدا نگهدار

بهزاد خلیلی
۳۰ آبان ۹۴ ، ۰۰:۰۰ موافقین ۴ مخالفین ۰ ۰ نظر

سلام

ما آموزش تکنولوژی MEAN را در دستور کار داریم که می خواهیم از ابتدایی ترین کلمه شروع به آموزش کنیم.

MongoDB – قسمت اول

MongoDB یک دیتابیس Open Source و NoSql می باشد. اصطلاح NoSql نامی عمومی است که به مجموعه ای از پایگاه های داده اطلاق می شود که از زبان پرس و جوی ساخت یافته SQL یا مدل رابطه ای استفاده نمی کنند. عبارت NoSql  یک مفهوم برای مشخص سازی یک موج خلاقانه است که در دنیای پایگاه های داده ای در حال وقوع است. با مطرح شدن این مفهوم، طوفانی از تبادل نظر، هیجان و بحث و گفت و گو در محافل فنی به راه افتاد که به یقین تا مدت ها باقی خواهد ماند. برای درک بیشتر اهمیت NoSql باید به چالش های موجود امروزی بر سر راه پایگاه های داده بیشتر توجه کرد. هم اکنون با توسعه فناوری های مختلف و قابلیت نمونه برداری و تولید حجم عظیمی از داده ها، امکان ذخیره سازی و تحلیل آن ها با چاشی بزرگ به شمار می آید. داده هایی از قبیل داده های هواشناسی و ... .

ویژگی های MongoDB

بر اساس Collection  (مجموعه) و Document (سند) کار می کند.

Collection : به مجموعه سندهای داخل یک پایگاه داده مجموعه می گویند.

Document : یک سند دارای تعدادی فیلد از کلید و مقدار می باشد.

 

معادل اصطلاحات دیتابیس های SQL در MongoDB :

 

Mongo DB

SQL

Database

Database

Collection

Table

Document

Field

Row

Column

 

دیتابیس های SQL دیتابیس هایی هستند که براساس Relation کار می کنند، اما Mongo DB به طور کلی NoSql ها اینطور نیستند وآن ها بر اساس سند کار می کنند.

 

مزایای Mongo DB نسبت به پایگاه داده رابطه ای :

Schema Less هستند؛ تعداد فیلد ها، محتوا و اندازه یک سند می تواند متفاوت از بقیه سند ها باشد.

عدم وجود Join های پیچیده.

امکان کوئری های پیچیده و عمیق بر روی سند ها و تقریبا همانند Sql قدرتمند است.

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

داده ها به صورت J SON در سند ها ذخیره می شوند.

ایندکس گذاری روی هر خاصیت.

Sharding خودکار.

کوئری های غنی.

بروزرسانی های درجا.

 

کجا ها بهتر است از MongoDB استفاده شود :

Big Data

سیستم مدیریت محتوا و تحویل

زیرساخت های اجتماعی و موبایل

مدیریت داده کاربر

 

خوب من امروز فقط شما را با Mongo DB آشنا کردم، اما در آموزش های بعدی نحوه نصب و ایجاد دیتابیس و کوئری زدن و ... را خدمت شما دوستان آموزش می دهیم.

 

 

بهزاد خلیلی
۲۹ آبان ۹۴ ، ۲۳:۳۳ موافقین ۴ مخالفین ۰ ۳ نظر

واژه ی MEAN گرفته شده از ابتدای چهار واژه ی MongoDB, Express, AngularJS, NoedJS می باشد.  MEAN یک فریم ورک برای نقطه شروع و ارتباط بین این چهار برنامه است. یک فریم ورک جاوا اسکریپت برای راه سریع و سازمان یافته برای توسعه ی اپلیکیشن های تحت وب می باشد. سعی بر این است که ارتباط بین این چهار فریم ورک پایه برقرار شود و مشکلات مجتمع سازی پایه حل شود.

در این وبلاگ قصد داریم این چهار تکنولوژی رو به شما دوستان آموزش بدیم.

Node.js این امکان را به شما می دهد که در سمت سرور هم از زبان javascript استفاده کنید؛ و هزینه ی یادگیری یک زبان دیگر را از دوش شما بر میدارد. به علاوه خاصیت NoSQL بودن MongoDB به شما کمک می کند که بدون نگرانی لایه ی داده را عوض کنید (در درس های آینده با خواص MongoDB آشنا خواهید شد) . و بالاخره این تکنولوژی جامعه ی پشتیبانی قوی دارد که باعث می شود کار کردن با این تکنولوژی راحت باشد.


حمیدرضا صدیق
۲۶ آبان ۹۴ ، ۱۲:۵۸ موافقین ۵ مخالفین ۰ ۰ نظر