آموزش ديتابيس مونگو و الستيك سرچ- MongoDB & Elasticsearch tutorial
240 subscribers
18 photos
به صورت كاربردي نحوه كار و استفاده از MongoDb و Elasticsearch رو ياد خواهيد گرفت.

No-SQL
MongoDB
Elasticsearch


ارتباط با من:

@RzaMlk7
Download Telegram
متغیرهایی که می بايست جهت اتصال به MongoDB مقدار دهي
شوند:


--db: نام دیتابیس
--host: آدرس سرویس دیتابیس
--Port: پورت سرویس دیتابیس
--Username: نام کاربری
--password: رمز عبور کاربر
👇
1
دیتابیس های پیش فرض در MongoDB:

admin
local
config
👇
كامندهاي پر استفاده در MongoDb:

⁃ مشاهده ديتابيس ها
show dbs

⁃ مشاهده كالكشن ها
show collections / db.getCollectionNames()

⁃ مشاهده نقش هاي تعريف شده
show roles

⁃ مشاهده كاربران تعريف شده
show users / db.getUsers()

⁃ مشاهده آخرين لاگ هاي ثبت شده
db.adminCommand( { getLog: <value> } )

⁃ مشاهده اطلاعات آماري ديتابيس
db.stats()

⁃ مشاهده اطلاعات آماري ميزان Read/ Write روي يك كالكشن
db.collectionName.latencyStats()
انواع داده اي در MongoDb
👇
كالكشن OpLog چيست:

اختصار يافته OperationLog، كالكشني در Mongo DB مي باشد كه تمام تغييرات داده اي براي write و براي update ابتدا در آن نوشته مي شود. از جمله استفاده هاي آن در انعكاس تغييرات داده ها بين نودها در فرآيند replication مي باشد.
👇
Capped Collection

🔹نوعی کالکشن با سایز ثابت (fixed-size) می باشند که برای انجام عملیات خواندن و درج داده ها با throughput بالا مناسب می باشند.

🔹این نوع collection ها مانند circular buffer عمل می کنند. به این معنی که زمانی که فضای کالکشن پر شد، داکیونت جدید در آن بر روی قدیمی ترین داکیومنت overwrite می شود.

🔹امکان حذف یک یا بخشی از داکیونت ها از آن وجود ندارد. تنها می توان با استفاده از تابع ()drop تمام داکیومنت ها را حذف نمود.

🔹امکان sharding بر روی آن وجود ندارد.

🔹نحوه ايجاد

db.createCollection( "test_capped", { capped: true, size: 100000 } )

🔹در آینده در مورد دیگر ويژگي های آن و use case های مناسب جهت استفاده از آن با توجه به آشنا شدن با مفاهیم پیشرفته صحبت خواهیم نمود.
👇
قابلیت TTL در دیتابیس Mongo

🔹احتمالا در مواردی با این نیازمندی مواجه شده ايد كه داده هایی که دیگر در دیتابیس به آن ها نیاز نمی باشد و به معنی دیگر Expire شده اند پس از گذشت زمانی حذف شوند.

🔹با استفاده از پیکربندی TTL ( اختصار یافته Time To Live)در ديتابيس مونگو، می توان به صورت اتوماتیک داده هایی که Expire شده اند را از دیتابیس حذف نمود. این قابلیت با استفاده از TTL Index در دیتابیس مونگو پیاده سازی می شود.
🛃 آزمون
بر روي كدام نوع كالكشن مي توان TTL Index تعريف نمود؟
Anonymous Quiz
21%
Normal Collection
26%
Capped Collection
53%
هر دو
تفاوت دستور InsertOne و InsertMany

با استفاده از دستور InsertOne مي توان تنها يك داكيومنت را به كالكشن مورد نظر اضافه نمود، اما با استفاده از دستور InsertMany، همزمان مي توان چندين داكيومنت را به كالكشن اضافه نمود.
👇
🔹db.student.insertOne({name: "Ali",age: 27, marks: 85})

🔹db.student.insertMany([
{name: "Ali", age: 27, marks: 85},
{name: "Pedram", age: 24, marks: 75},
{name: "sara", age: 22, marks: 80}
])
Bulk Wrire

🔹در ديتابيس مونگو اين قابليت وجود دارد تا با استفاده از دستور bulkWrite, چندين عمليات مختلف نظير اينسرت، آپديت ، حذف داده و … را بر روي يك كالكشن فراخواني نمود.

🔹با استفاده از مقدار دهي متغير ordered در اين كامند، مي توان مشخص نمود كه دستورات به ترتيب اجرا شوند ياخير. در صورت مقداردهي false, پرفورمنس بسيار مناسبي در استفاده از اين عملگر براي انجام عمليات batch خواهيم داشت.

🔹از ديگر مزاياي استفاده از اين دستور:
كاهش round trip( رفت و برگشت) بين اپليكيشن و ديتابيس و
كاهش latency لايه network بين ديتابيس و اپليكيشن مي باشد.
👇