MongoDB چیست؟ + کاربرد و ویژگی‌های مونگو دی‌بی

تصور کارتونی لوگو دیتابیس MongoDB در طرح دایره آبی رنگ
Avatar
نویسنده: علیرضا برزودی
دوشنبه 14 اسفند 1402
مطالعه: ۱۴ دقیقه ۰ نظر ۱۶۵ بازدید

MongoDB چیست؟ آیا به دنبال پایگاه داده‌ای انعطاف‌پذیر و قدرتمند برای مدیریت داده‌های خود هستید؟ MongoDB پایگاه داده NoSQL است که با ذخیره‌سازی داده‌ها به‌صورت اسناد، انعطاف‌پذیری و قدرت را به شما هدیه می‌دهد.

مانگو دی بی پایگاه داده‌ای محبوب و قدرتمند است که به شما آزادی کامل در ساختار داده‌ها را می‌دهد، با مانگو دی بی دیگر نگران محدودیت‌های ساختاری در ذخیره‌سازی داده‌های خود نباشید.

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

خرید سرور ابری پارس پک

MongoDB چیست؟ دیتابیس قدرتمند و منعطف

مونگو دی بی (MongoDB)، پایگاه داده‌ای قدرتمند و انعطاف‌پذیر برای ذخیره و نگهداری داده‌های کلان است که به سازمان‌ها کمک می‌کند تا اطلاعات خود را به‌وصورت کارآمد ذخیره، بازیابی و تحلیل کنند.

این سیستم پایگاه داده NoSQL (مخفف Not Only SQL) یک ابزار متن باز و رایگان است که به عنوان جایگزینی قدرتمند برای پایگاه‌های داده رابطه‌ای سنتی عمل می‌کند. به‌عبارتی، داده‌هایتان در MongoDB احساس راحتی دارند، چون همیشه فارغ از نوع عددی، متنی، تصویری و… در بهترین مکان ذخیره می‌شوند.

ویژگی‌های دیتابیس MongoDB چیست؟

دنیای دیتابیس‌ها را به مثابه کتابخانه‌ای آشفته تصور کنید، انبوهی از اطلاعات بدون نظم و سامان. MongoDB نظم را به این کتابخانه می‌آورد، هر اطلاعات را در قفسه‌ای مشخص و دسته‌بندی‌شده قرار می‌دهد تا به آسانی در دسترس شما باشد.

این ساختار داده، انعطاف‌پذیری یک تجربه زنده و جذاب را به شما می‌دهد تا داده‌هایتان را به هر شکلی که می‌خواهید، سازماندهی کنید. هر سند در MongoDB مانند یک کارت جادویی عمل می‌کند که از جفت‌های کلید و مقدار تشکیل شده است. به زبان ساده، این ساختار در پایگاه داده NoSQL مونگو دی بی، مدیریت داده‌ها را به تجربه‌ای آسان و لذت‌بخش تبدیل می‌کند.

تصویر اینفوگرافی از ویژگی‌های دیتابیس MongoDB
معرفی ویژگی‌های دیتابیس MongoDB

چرا باید از مونگو دی بی استفاده کنیم؟

برای درک بهتر اینکه دلیل استفاده از مونگو دی بی چیست؟ می‌توان به ویژگی‌های کلیدی اشاره کرد که پایگاه داده MongoDB را محبوب کرده است. ویژگی‌هایی از جمله:

۱. مقیاس‌پذیری فراوان

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

MongoDB با قابلیت‌های مقیاس‌پذیری عمودی و افقی خود، می‌تواند به‌راحتی با رشد کسب‌وکار شما سازگار شود. برای درک مفهوم مقیاس‌پذیری عمودی و افقی یک سیستم را درنظر بگیرید. مقیاس‌پذیری عمودی به‌معنای افزایش قدرت سیستم موجود بوده، درحالی‌که منظور از مقیاس‌پذیری افقی اضافه کردن تعداد سیستم‌های بیشتر ( به‌جای افزایش قدرت فقط یک سیستم) به زیرساخت اصلی است. این انعطاف‌پذیری خیالتان را راحت می‌کند که داده‌های شما همیشه با نیازهای کسب‌وکار شما مطابقت دارند.

۲. عملکرد و اطمینان بالا 

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

پایگاه داده MongoDB چندین نسخه از داده‌های شما ایجاد می‌کند و اگر یک سرور خاموش شود، داده‌های شما همچنان قابل دسترسی است. دیتابیس مانگو دی بی عملکرد سریع و قابلیت اطمینان بالایی دارد. این سیستم مدیریت پایگاه داده به‌طور همزمان هزاران درخواست را پردازش می‌کند.

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

دیتابیس چیست؟

۳. قابلیت ذخیره‌سازی سند 

دیتابیس MongoDB داده‌ها را در اسناد ذخیره می‌کند. اسناد ساختار داده‌های منعطف هستند که از جفت‌های کلیدی و مقداری تشکیل شده‌اند. این ساختار ذخیره‌سازی، MongoDB را برای مدیریت انواع مختلف داده‌ها، از جمله داده‌های غیرساختاری، بسیار مناسب می‌کند؛ در نتیجه جستجوی سریع‌تر و دقیق‌تری را تجربه خواهید کرد.

۴. پشتیبانی از چندین زبان

پایگاه داده MongoDB از زبان‌های برنامه‌نویسی مانند C ،C++ ،C# ،Go ،Java ،Python ،Ruby و Swift پشتیبانی می‌کند؛ در نتیجه می‌توانید از MongoDB برای انواع برنامه‌ها و پلتفرم‌ها استفاده کنید.

MongoDB یک پایگاه داده NoSQL است که برای ذخیره و مدیریت داده‌های سند مبتنی بر JSON استفاده می‌شود. این نوع پایگاه داده برای برنامه‌ها و سیستم‌هایی که به ذخیره داده‌های ساختارمند نیاز ندارند، بسیار مناسب است.

MongoDB برای ذخیره‌سازی داده‌های انعطاف‌پذیر و تغییرپذیر استفاده می‌شود. از جمله کاربردهای آن می‌توان به طراحی وب، اپلیکیشن‌های موبایل، سیستم‌های تجاری و همچنین ذخیره سازی داده‌های لاگ و IoT اشاره کرد.

تصویر اینفوگرافیگ از قابلیت‌های پایگاه داده مونگو دی بی
معرفی مهم‌ترین قابلیت‌های دیتابیس MongoDB

کاربرد MongoDB چیست؟

برای درک بهتر این سوال که «کاربرد مونگو دیبی چیست؟» مثالی از یک فروشگاه اینترنتی با هزاران سفارش روزانه را بررسی می‌کنیم. فرض کنید صاحب یک فروشگاه اینترنتی هستید که روزانه هزاران سفارش دریافت می‌کنید.

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

برای مثال، می‌توان از MongoDB برای ذخیره اطلاعات مربوط به مشتریان، محصولات، سفارشات و پرداخت‌ها استفاده کرد. همچنین می‌توانید از آن برای یکپارچه‌سازی داده‌ها از منابع مختلف مانند سیستم فروشگاهی، سیستم مدیریت روابط با مشتریان (CRM) و سیستم مدیریت انبار (WMS) استفاده کنید. برخی از مهم‌ترین کاربردهای این پایگاه داده عبارت‌اند از:

۱. توسعه وب و اپلیکیشن

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

۲. یادگیری ماشین و هوش مصنوعی

دیتابیس MongoDB برای توسعه پروژه‌های یادگیری ماشین و هوش مصنوعی بسیار مناسب است. این پایگاه داده به محققان کمک می‌کند تا داده‌های بزرگ را به‌سادگی مدیریت کنند.

۳. پردازش داده‌های بزرگ

 MongoDB برای پردازش داده‌های بزرگ بسیار کارآمد است. این پایگاه داده می‌تواند داده‌های کلان را به‌سرعت و با دقت بالا پردازش کند.

هر آنچه باید درباره مزایا و معایب و نحوه مدیریت داده‌ها در سیستم مدیریت پایگاه داده بدانید را در مقاله زیر بخوانید.

DBMS چیست؟

۴. اینترنت اشیا (IoT)

MongoDB برای توسعه پروژه‌های مربوط به اینترنت اشیا بسیار کاربردی است. این پایگاه داده اطلاعات تولید شده با اینترنت اشیا را به‌سرعت و در کسری از ثانیه ذخیره و مدیریت می‌کند.

مزایا و معایب MongoDB چیست؟

MongoDB یک پایگاه داده NoSQL قدرتمند و انعطاف‌پذیر است که به دلیل مقیاس‌پذیری بالا انتخابی ایدئال برای برنامه‌های کاربردی داده‌های کلان به شمار می‌آید.

با وجود مزایای قابل توجه مانگو دی بی، برخی معایب نیز وجود دارد که باید قبل از انتخاب آن در نظر گرفته شوند. برای پاسخ به پرسش «مزایا و معایب MongoDB چیست؟»، جدول زیر به شما در انتخاب MongoDB کمک خواهد کرد:

مزایا معایب
بدون ساختار Schema-less است و نیازی به طراحی ساختار پایگاه داده قبل از استفاده نیست. برای ذخیره داده‌ها از حافظه بالا استفاده می‌کند.
انعطاف‌پذیری بالایی دارد. حداکثر اندازه داده قابل ذخیره در هر سند ۱۶ مگابایت است.
از انواع داده‌ها پشتیبانی می‌کند محدودیت در ادغام و نگهداری داده‌ها دارد.
دسترس‌پذیری و پایداری بالایی دارد از SQL injection پشتیبانی نمی‌کند.
عملکرد و مقیاس‌پذیری بالایی ارائه می‌دهد.
پشتیبانی از موقعیت مکانی در مونگو دی بی به شکلی کارآمد و با راندمان بالا انجام می‌شود.
برای داده‌های بزرگ مناسب است.

نحوه کار با MongoDB چگونه است؟

اکنون وقت آن رسیده به سراغ نحوه کار با MongoDB برویم. اولین قدم برای کار با MongoDB، نصب آن است. MongoDB برای Windows ،macOS و Linux در دسترس است. شما می‌توانید آخرین نسخه MongoDB را از وب‌سایت رسمی آن دانلود کنید.

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

اینفوگرافیک برنامه‌های کاربردی مونگو دی بی
معرفی برنامه‌های کاربردی MongoDB

۱. ایجاد پایگاه داده در MongoDB

برای ایجاد پایگاه داده جدید در MongoDB، می‌توانید از دستور use استفاده کنید. برای مثال، برای ایجاد پایگاه داده‌ای به نام my_database، دستور زیر را اجرا کنید:

use my_database

اگر پایگاه داده قبلاً وجود داشته باشد، دستور «use» همان پایگاه داده را فراخوانی می‌کند.

۲. ایجاد مجموعه (collection) در MongoDB

برای ایجاد یک collection جدید، روش‌های مختلفی وجود دارد:

روش اول: داده را مستقیماً به collection اضافه کنید

db.myCollection.insert({"name": "john", "age" : 22, "location": "colombo"})

این دستور، در صورت عدم وجود collection با نام «myCollection» آن را ایجاد کرده و سپس یک سند شامل نام و سن را در آن درج می‌کند. این نوع collectionها، «collections غیر محدود» نامیده می‌شوند.

روش دوم: از دستور «create Collection» استفاده کنید

db.createCollection("myCollection")

این دستور یک collection جدید با نام «myCollection» ایجاد کرده اما هیچ داده‌ای را به آن وارد نمی‌کند.

روش سوم: یک collection محدود ایجاد کنید

db.createCollection("mySecondCollection", {capped : true, size : 2, max : 2})

این دستور یک collection جدید با نام «mySecondCollection» ایجاد می‌کند که فقط می‌تواند حداکثر دو سند داشته باشد. قدیمی‌ترین سندها حذف می‌شوند تا مجموعه محدود به دو سند باقی بماند.

۳. ذخیره و ورود اطلاعات در MongoDB

درج داده در MongoDB بسیار ساده است. شما می‌توانید از سه روش مختلف برای درج داده استفاده کنید:

  • insertOne(): این روش برای درج یک سند استفاده می‌شود.
  • insertMany(): این روش برای درج چندین سند استفاده می‌شود.
  • insert(): این روش برای درج چندین سند در یک مجموعه استفاده می‌شود.

برای مثال، برای درج یک سند جدید به نام «user» در مجموعه «users» با نام «navindu» و سن ۲۲ می‌توانید از کد زیر استفاده کنید:

db.users.insertOne({

  "name": "navindu",

  "age": 22

})

برای درج چندین سند جدید با نام‌های «navindu» ،«kavindu» و «john doe» و سن‌های ۲۲، ۲۰ و ۲۵ به ترتیب در مجموعه «users» می‌توانید از کد زیر استفاده کنید:

db.users.insertMany([

{

"name": "navindu",

"age": 22

},

{

"name": "kavindu",

"age": 20

},

{

"name": "john doe",

"age": 25

}

])

دیتابیس MongoDB همچنین به شما امکان می‌دهد تا اسناد خود را به‌صورت منعطف سازماندهی کنید. برای مثال، شما می‌توانید یک اسناد جدید با نام «location» به سند John Doe اضافه کنید تا نشان دهد او کجا زندگی می‌کند:

db.users.updateOne({

"name": "john doe"

}, {

$set: {

"location": "colombo"

}

})

۴. جستجوی داده‌ها در MongoDB

شیوه جستجوی داده در MongoDB چیست؟ با پایگاه داده MongoDB، می‌توانید به راحتی داده‌های خود را جستجو کنید. در اینجا نحوه جستجو برای همه داده‌ها در یک مجموعه آورده شده است:

db.myCollection.find()

این دستور تمام اسناد موجود در مجموعه را بازیابی می‌کند. اگر می‌خواهید داده‌ها را به صورت مرتب‌تر مشاهده کنید، می‌توانید به آن .pretty() اضافه کنید:

db.myCollection.find().pretty()

۵. حذف یک سند در MongoDB

با استفاده از دستور db.collection.remove() در MongoDB می‌توانید به راحتی سند مورد نظرتان را حذف کنید. فقط کافی‌است شناسه (_id) سند را مشخص کنید. برای مثال، برای حذف سندی با نام «navindu» از مجموعه «myCollection»، از دستور زیر استفاده کنید:

db.myCollection.remove({name: "navindu"});

با این دستور سندی که نام آن «navindu» است از مجموعه «myCollection» حذف می‌شود.

اینفوگرافیک تفاوت RDBMS با MongoDB
دیتابیس‌ RDBMS چه تفاوتی با MongoDB دارد؟

تفاوت RDBMS با MongoDB چیست؟

MongoDB و RDBMS دو غول دنیای پایگاه داده هستند که هر کدام با مزایا و معایب منحصربه‌فرد خود، گوی سبقت را از رقیبان ربوده‌اند. MongoDB با ساختار غیررابطه‌ای و مبتنی بر سند، در مقابل RDBMS با ساختار رابطه‌ای، انتخابی ایدئال برای کاربردهای مختلف است. در جدول زیر می‌توانید تفاوت RDBMS با MongoDB را در یک نگاه مشاهده کنید:

ویژگی MongoDB RDBMS
ساختار داده مستند محور رابطه‌ای
ذخیره داده اسکیما منعطف اسکیما از پیش تعریف شده
قابلیت مقیاس پذیری افقی (قابل مقیاس‌سازی در سراسر چندین سرور) عمودی (قابل مقیاس‌سازی با افزایش منابع سرور)
سازگاری قضیه CAP (سازگاری، در دسترس بودن، تحمل پارتیشن) ویژگی‌های ACID (اتمی بودن، سازگاری، انزوا، پایداری)
عملکرد معمولاً برای عملیات خواندن سریع‌تر است. معمولاً برای عملیات خواندن کندتر است.
موارد استفاده داده‌های سلسله مراتبی، برنامه‌های وب، برنامه‌های Real-time تجارت الکترونیک، مالی، سیستم‌های ERP

تفاوت SQL Server و MongoDB چیست؟

SQL Server پایگاه داده رابطه‌ای برای ذخیره داده‌های ساختار یافته است،‌ درحالی‌که MongoDB پایگاه داده NoSQL برای ذخیره داده‌های غیرساختاری است. همچنین SQL Server برای کاربردهایی مانند مدیریت پایگاه داده‌ مشتری، مدیریت سفارشات و مدیریت انبارداری کاربرد دارد. این در حالی است که MongoDB برای کاربردهایی مانند مدیریت داده‌های وب، داده‌های رسانه‌های اجتماعی و دستگاه‌های IoT استفاده می‌شود. تفاوت SQL Server و MongoDB را می‌توانید در جدول زیر مشاهده کنید:

ویژگی MongoDB SQL Server
نوع NoSQL SQL
نحوه ذخیره داده‌ها اسناد JSON جداول و ردیف‌ها
پشتیبانی از روابط بین داده‌ها ندارد دارد
مدل داده غیر رابطه‌ای رابطه‌ای
مقیاس‌پذیری افقی (شاردینگ) عمودی
قابلیت اطمینان و در دسترس بودن بالا بالا
اسناد ساختار پویا ساختار ثابت
زبان پرس‌وجو محدود SQL

تفاوت MySQL و MongoDB چیست؟

دیتابیس مونگو دیبی برای برنامه‌هایی که نیاز به ذخیره و مدیریت مقادیر عظیمی از داده‌های غیرساختاری دارند، مانند برنامه‌های وب، برنامه‌های موبایل و برنامه‌های IoT، گزینه مناسب‌تری است. این دیتابیس به دلیل انعطاف‌پذیری و مقیاس‌پذیری بالا، برای ذخیره داده‌های متنوع و در حال رشد ایدئال است. برای برنامه‌هایی که نیاز به تجزیه و تحلیل داده‌های پیچیده دارند، مانند برنامه‌های مالی، برنامه‌های CRM و برنامه‌های BI، دیتابیس MySQL انتخاب بهتری خواهد بود. این دیتابیس به دلیل ساختار رابطه‌ای و قابلیت‌های پرس و جو قدرتمند، برای تحلیل داده‌ها و استخراج اطلاعات مفید از آن‌ها مناسب‌تر است. جدول مقایسه MySQL و MongoDB کمکتان می‌کند تا تفاوت این دو دیتابیس را بهتر درک کنید:

ویژگی MongoDB MySQL
نحوه نمایش داده اسناد JSON جداول و ردیف‌ها
الگوی داده انعطاف‌پذیر سخت‌گیرانه
زبان دسترسی جاوا اسکریپت SQL
توسعه MongoDB و Inc Oracle Corporation
قابلیت مقیاس‌پذیری عالی خوب
ایندکس‌گذاری بدون ایندکس کل مجموعه را اسکن می‌کند. بدون ایندکس کل جدول را اسکن می‌کند.
مجوز GPL v2/ مجوز تجاری در دسترس GNU AGPL v3.0/ مجوزهای تجاری در دسترس
انعطاف‌پذیری الگوی داده هیچ محدودیتی ندارد. سخت‌گیرانه تعریف شده، نیاز به برنامه‌ریزی اولیه دارد.
زبان پرس‌وجو جاوا اسکریپت SQL
پشتیبانی از JOIN هیچ عملیات JOIN وجود ندارد. عملیات JOIN را پشتیبانی می‌کند.
مدیریت داده برای داده‌های بزرگ غیرساختار یافته کارآمد است. برای داده‌های ساختار یافته مناسب‌تر است.
کاربردها تجزیه و تحلیل بلادرنگ، مدیریت محتوا، اینترنت اشیا، برنامه‌های تلفن همراه داده‌های ساختار یافته با روابط تعریف شده

میزبانی MongoDB را با خیال راحت به سرور پارس‌پک بسپارید

آیا به دنبال راه‌حلی آسان و مقرون‌به‌صرفه برای نگهداری داده‌های پایگاه داده MongoDB خود هستید؟ سرور ابری پارس‌پک گزینه مناسبی برای شماست. با سرور ابری پارس پک خیالتان از ارتقا و مقیاس‌پذیری منابع سرور راحت است و با پرداخت هزینه‌ها به‌ازای منابع مصرفی تا حد قابل توجهی می‌توانید در هزینه‌هایتان صرفه‌جویی کنید. برای اطلاعات بیشتر از پلن‌های این سرویس محبوب روی لینک زیر کلیک کنید.

جمع‌بندی

MongoDB چیست؟ اغراق نیست اگر بگوییم MongoDB مانند صندوقچه‌ای سحرآمیز است که هر مدل اطلاعاتی را در خود جای می‌دهد. در این مطلب از آموزش برنامه‌نویسی بلاگ پارس پک، همه چیز را راجع به این دیتابیس محبوب بررسی کردیم. اگر در این زمینه سوالی دارید، در بخش نظرات می‌توانید آن را بنویسید تا در سریع‌ترین زمان راهنمایی‌تان کنیم.

سؤالات متداول

۱. MongoDB چیست و چگونه کار می‌کند؟

MongoDB یک سیستم مدیریت پایگاه داده NoSQL است که برای ذخیره، جستجو و مدیریت آسان اطلاعات طراحی شده است. این پایگاه داده از مدل سند (Document-Oriented) استفاده و داده‌ها را به صورت JSON ذخیره می‌کند.

۲. MongoDB به‌طور معمول روی کدام سیستم‌عامل‌ها و زبان‌های برنامه‌نویسی پشتیبانی می‌شود؟

MongoDB روی اکثر سیستم‌عامل‌ها از جمله Windows ،macOS و Linux قابل نصب است. همچنین، اکثر زبان‌های برنامه‌نویسی مانند JavaScript ،Python ،Java ،PHP و… پشتیبانی می‌شوند.

۳. آیا برای استفاده از MongoDB نیاز به دانش SQL داریم؟

خیر. MongoDB از زبان کوئری مبتنی بر JSON استفاده می‌کند و برای کار با آن به زبان SQL نیازی ندارید.

۴. تفاوت بین پایگاه داده‌های رابطه‌ای و MongoDB چیست؟

یکی از تفاوت‌های اصلی این است که MongoDB مبتنی‌بر مدل سند است و داده‌ها را در اسناد JSON ذخیره می‌کند، درحالی‌که پایگاه داده‌های رابطه‌ای از روابط جدولی بین داده‌ها استفاده می‌کنند.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


ارسال دیدگاه در وبلاگ پارس‌پک را مطالعه کرده و آن‌ها را می‌پذیرم.

با خدمات ابری پارس پک آشنا شوید

اولین ارائه‌دهنده خدمات رایانش ابری در ایران هستیم