میانبرهای دستور MongoDB: راهنمای نهایی

این پست یک راهنمای جامع برای مهم ترین دستورات و عملیات MongoDB است. پرس و جوهای اساسی، عملیات CRUD، نمایه سازی، تجمیع و مفاهیم پیشرفته تر را پوشش می دهد.
1. مبانی MongoDB
اتصال به MongoDB
mongo --host <hostname> --port -u -p --authenticationDatabase
نمایش پایگاه های داده
show dbs;
از یک پایگاه داده استفاده کنید
use myDatabase;
نمایش مجموعه ها
show collections;
2. عملیات CRUD
یک مجموعه ایجاد کنید
db.createCollection("myCollection");
درج اسناد
db.myCollection.insertOne({ name: "John", age: 30 });
db.myCollection.insertMany([{ name: "Jane", age: 25 }, { name: "Doe", age: 22 }]);
اسناد را بخوانید
db.myCollection.find();
db.myCollection.find({ name: "John" });
به روز رسانی اسناد
db.myCollection.updateOne({ name: "John" }, { $set: { age: 31 } });
db.myCollection.updateMany({ age: { $lt: 30 } }, { $set: { status: "young" } });
حذف اسناد
db.myCollection.deleteOne({ name: "John" });
db.myCollection.deleteMany({ age: { $lt: 25 } });
3. استعلام اسناد
پرس و جوهای اساسی
db.myCollection.find({ name: "John" });
db.myCollection.find({ age: { $gt: 25 } });
فرافکنی
db.myCollection.find({}, { name: 1, age: 1 });
مرتب سازی
db.myCollection.find().sort({ age: -1 });
محدود کردن و پرش
db.myCollection.find().limit(5);
db.myCollection.find().skip(5).limit(5);
4. به روز رسانی اسناد
به روز رسانی اپراتورها
- $set: مقدار یک فیلد را تعیین می کند
db.myCollection.updateOne({ name: "John" }, { $set: { age: 31 } });
db.myCollection.updateOne({ name: "John" }, { $unset: { age: "" } });
- $ inc: مقدار یک فیلد را افزایش می دهد
db.myCollection.updateOne({ name: "John" }, { $inc: { age: 1 } });
- فشار $: یک مورد را به یک آرایه اضافه می کند
db.myCollection.updateOne({ name: "John" }, { $push: { hobbies: "reading" } });
5. حذف اسناد
حذف اپراتورها
- حذف یک: یک سند را حذف می کند
db.myCollection.deleteOne({ name: "John" });
- حذف بسیاری: چندین سند را حذف می کند
db.myCollection.deleteMany({ age: { $lt: 25 } });
6. شاخص ها
ایجاد شاخص ها
db.myCollection.createIndex({ name: 1 });
مشاهده شاخص ها
db.myCollection.getIndexes();
کاهش شاخص ها
db.myCollection.dropIndex("name_1");
7. تجمیع
تجمیع پایه
db.myCollection.aggregate([
{ $match: { status: "active" } },
{ $group: { _id: "$age", total: { $sum: 1 } } }
]);
مراحل تجمیع مشترک
- $match: اسناد را فیلتر می کند
{ $match: { status: "active" } }
- گروه $: اسناد را بر اساس یک فیلد مشخص گروه بندی می کند
{ $group: { _id: "$age", total: { $sum: 1 } } }
{ $sort: { total: -1 } }
- پروژه $: اسناد را تغییر شکل می دهد
{ $project: { name: 1, age: 1 } }
8. مدل سازی داده ها
جاسازی اسناد
let post = {
title: "Post Title",
content: "Post Content",
comments: [
{ user: "John", comment: "Great post!" },
{ user: "Jane", comment: "Thanks for sharing!" }
]
};
ارجاع به اسناد
let user = { name: "John" };
let post = { title: "Post Title", content: "Post Content", userId: user._id };
9. همانند سازی
راه اندازی یک مجموعه ماکت
rs.initiate();
rs.add("mongodb1.example.net:27017");
rs.add("mongodb2.example.net:27017");
rs.add("mongodb3.example.net:27017");
بررسی وضعیت Replica Set
rs.status();
10. شاردینگ
فعال کردن Sharding
sh.enableSharding("myDatabase");
اشتراک گذاری یک مجموعه
sh.shardCollection("myDatabase.myCollection", { shardKey: 1 });
11. معاملات
شروع یک معامله
const session = db.getMongo().startSession();
session.startTransaction();
انجام معامله
session.commitTransaction();
session.endSession();
لغو یک معامله
session.abortTransaction();
session.endSession();
12. امنیت
ایجاد کاربر
db.createUser({
user: "myUser",
pwd: "myPassword",
roles: [{ role: "readWrite", db: "myDatabase" }]
});
احراز هویت یک کاربر
db.auth("myUser", "myPassword");
13. بهترین شیوه ها
- از شاخص ها استفاده کنید: با استفاده از ایندکس ها از کارآمد بودن پرس و جوهای شما اطمینان حاصل کنید.
- مدل سازی داده ها: مدل داده مناسب (جاسازی در مقابل ارجاع) را بر اساس مورد استفاده خود انتخاب کنید.
- به طور منظم پشتیبان گیری کنید: برای جلوگیری از از دست رفتن داده ها، به طور مرتب از اطلاعات خود نسخه پشتیبان تهیه کنید.
- نظارت بر عملکرد: از ابزارهای نظارتی برای نظارت بر عملکرد نمونه MongoDB خود استفاده کنید.
- پایگاه داده خود را ایمن کنید: پیاده سازی مکانیسم های احراز هویت و مجوز مناسب.
نتیجه گیری
این پست مفاهیم، دستورات و عملیات کلیدی برای کار با MongoDB را خلاصه می کند. هنگامی که با MongoDB کار می کنید، این را به عنوان یک مرجع سریع نگه دارید!