نحوه import و export کردن پایگاه داده MongoDB در اوبونتو 24.04
۸ فروردین ۱۴۰۴
مقدمه
MongoDB یکی از محبوبترین موتورهای پایگاهداده NoSQL است. قابل اعتماد بودن، مقیاسپذیر بودن، قدرتمند بودن و راحتی کار با آن از ویژگیهای بارز این ابزار پایگاه داده میباشد. منظور از import و export کردن، عملیاتی است که در آن، دادهها به فرمت قابل خواندن توسط انسان تبدیل میشوند؛ بهگونهای که با سایر محصولات نرم افزاری سازگار باشند. در مقابل، عملیات بکاپگیری و بازیابی، دادههای باینری خاص MongoDB را ایجاد یا استفاده میکند که یکپارچگی دادههای شما و همچنین ویژگیهای خاص MongoDB آن را حفظ میکند. بنابراین، برای انتقال، معمولاً استفاده از نسخه پشتیبان و بازیابی ترجیح داده میشود، به شرطی که سیستمهای مبدأ و مقصد سازگار باشند. در این مقاله، نحوه import و export کردن پایگاه داده MongoDB را به شما آموزش خواهیم داد. تا پایان با ما همراه باشید:)
توجه داشته باشید برای دنبال کردن این آموزش موارد زیر را نیاز خواهید داشت:
- یک سرور مجازی اوبونتو 24.04 شامل یک کاربر غیر root با دسترسی sudo و یک فایروال. توصیه میشود مقاله نحوه راهاندازی اولیه سرور مجازی با اوبونتو Ubuntu را قبل از شروع آموزش مطالعه کنید.
- یک MongoDB نصب و پیکربندی شده.
- آشنایی با تفاوت بین دادههای JSON و BSON در MongoDB.

در ادامه بخوانید:
- مرحله اول: import کردن اطلاعات در MongoDB
- مرحله دوم: export کردن اطلاعات از MongoDB
- نتیجه گیری
- سوالات متداول
مرحله اول: وارد کردن اطلاعات در MongoDB
در این آموزش جهت یادگیری نحوه وارد کردن اطلاعات در MongoDB، یک نمونه پایگاه داده MongoDB در مورد رستورانها استفاده کردهایم. این نمونه دیتابیس با فرمت .json
میباشد و با استفاده از wget
بصورت زیر قابل دانلود میباشد:
wget https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json
بعد از اتمام دانلود، باید یک فایل به نام primer-dataset.json
در دایرکتوری فعلی داشته باشید. حالا بیایید دادهها را از این فایل به یک پایگاه داده جدید به نام newdb
و به کالکشنی به نام restaurants
وارد کنیم.
برای این کار از دستور mongoimport
استفاده کنید:
sudo mongoimport --db newdb --collection restaurants --file primer-dataset.json
خروجی نمونه به این شکل خواهد بود:
2020-11-11T19:37:55.607+0000 connected to: mongodb://localhost/
2020-11-11T19:37:57.841+0000 25359 document(s) imported successfully. 0 document(s) failed to import
همانطور که دستور بالا نشان میدهد، 25359 داکیومنت وارد شده است. از آنجا که پایگاه دادهای به نامnewdb
نداشتیم، MongoDB آن را به صورت خودکار ایجاد کرد.
حالا باید import را تائید کنید. برای این کار به پایگاه دادهnewdb
که تازه ایجاد کردید، متصل شوید:
mongosh newdb
اکنون شما به نمونه پایگاه داده newdb
متصل شدهاید. توجه داشته باشید که کاربر ترمینال شما باید تغییر کند که این نشان دهنده اتصال شما به پایگاه داده است.
تعداد داکیومنتهای موجود در collection رستورانها، را با دستور زیر بدست آورید:
db.restaurants.count()
خروجی، عدد 2535
9 را نشان میدهد که تعداد داکیومنتهای وارد شده است. برای بررسی دقیقتر میتوانید، اولین داکیومنت را از collection رستورانها بصورت زیر مشاهده کنید:
db.restaurants.findOne()
خروجی به شکل زیر خواهد بود:
{
"_id" : ObjectId("5fac3d937f12c471b3f26733"),
"address" : {
"building" : "1007",
"coord" : [
-73.856077,
40.848447
],
"street" : "Morris Park Ave",
"zipcode" : "10462"
},
"borough" : "Bronx",
"cuisine" : "Bakery",
"grades" : [
{
"date" : ISODate("2014-03-03T00:00:00Z"),
"grade" : "A",
"score" : 2
},
...
],
"name" : "Morris Park Bake Shop",
"restaurant_id" : "30075445"
}
همانطور که در خروجی میبینید قالب json از رمزگذاری UTF-8
استفاده میکند و فایلهای import و export شده به آن، باید در آن فرمت رمزگذاری شوند. اگر فایلهای json را به صورت دستی ویرایش میکنید، باید این مورد را در ذهن داشته باشید. در غیر این صورت، MongoDB به طور خودکار این مورد را مدیریت خواهد کرد.
برای خارج شدن از محیط MongoDB، دستور exit را در ترمینال تایپ کنید:
exit
برای تجربهای سریع، مقیاسپذیر و امن در پایگاه دادههای MongoDB، هاست ابری MongoDB لیارا را امتحان کنید.
✅ عملکرد پایدار ✅ شبکه خصوصی ✅منابع اختصاصی
خرید هاست ابری MongoDB
مرحله دوم: export کردن اطلاعات از MongoDB
همانطور که قبلاً اشاره کردیم، با export کردن اطلاعات MongoDB میتوانید یک فایل متنی قابل خواندن را به همراه دادههای خود بدست آورید. به طور پیش فرض، اطلاعات در قالب json از پایگاه داده استخراج میشوند؛ اما شما میتوانید به فرمت csv (جدا شده با کاما) نیز export کنید.
برای استخراج اطلاعات از MongoDB، از دستور mongoexport
استفاده کنید. این دستور به شما امکان میدهد، دادهها را با اطلاعات بسیار دقیق استخراج کنید تا بتوانید یک پایگاه داده، یک collection، یک field را تعیین کرده و حتی از یک کوئری برای استخراج آن استفاده نمایید.
یک مثال ساده mongoexport
، استخراج collection رستورانها از پایگاه داده newdb
است. این همان پایگاه دادهای است که قبلاً وارد MongoDB کردهایم.
برای اینکار، از دستور زیر استفاده کنید:
sudo mongoexport --db newdb -c restaurants --out newdbexport.json
در دستور بالا، از --db
برای تعیین پایگاه داده، از -c
برای collection و --out
برای فایلی که دادهها در آن ذخیره میشوند، استفاده شده است.
خروجی یک دستور mongoexpor
t موفق باید به شکل زیر باشد:
2020-11-11T19:39:57.595+0000 connected to: mongodb://localhost/
2020-11-11T19:39:58.619+0000 [###############.........] newdb.restaurants 16000/25359 (63.1%)
2020-11-11T19:39:58.871+0000 [########################] newdb.restaurants 25359/25359 (100.0%)
2020-11-11T19:39:58.871+0000 exported 25359 records
خروجی بالا نشان میدهد که 25359 داکیومنت import شده است (همان تعداد اسناد که در مرحله قبل دیدید).
در برخی موارد ممکن است لازم باشد، تنها بخشی از collection خود را export کنید. در این صورت، اگر بخواهید این اطلاعات را مستقیماً هنگام اتصال به MongoDB دریافت کنید، مجدداً باید به پایگاه داده متصل شوید:
mongosh newdb
سپس از کوئری زیر استفاده کنید:
db.restaurants.find( { "borough": "Bronx", "cuisine": "Chinese" } )
نتایج کوئری به شکل زیر خواهد بود:
Output2020-12-03T01:35:25.366+0000 connected to: mongodb://localhost/
2020-12-03T01:35:25.410+0000 exported 323 records
برای خارج شدن از محیط مربوط به MongoDB، مجدداً دستور exit را تایپ کنید:
exit
اگر میخواهید دادهها را از یک خط فرمان sudo به جای اتصال به پایگاه داده استخراج کنید، در دستور monoexport
، با استفاده از گزینه -q
کوئری خود را بصورت زیر وارد کنید:
sudo mongoexport --db newdb -c restaurants -q "{\"borough\": \"Bronx\", \"cuisine\": \"Chinese\"}" --out Bronx_Chinese_retaurants.json
توجه داشته باشید که کاراکتر “
و دیگر کاراکترهای خاص در کوئری باید به همراه کاراکتر بک اسلش (\
) استفاده شوند تا در جستجو به خود آن کاراکترها تبدیل شوند.
چنانچه استخراج موفقیت آمیز باشد، نتیجه بصورت زیر نمایش داده خواهد شد:
Output
2020-11-11T19:49:21.727+0000 connected to: mongodb://localhost/
2020-11-11T19:49:21.765+0000 exported 323 records
موارد بالا نشان میدهد که 323 رکورد استخراج شده است و شما میتوانید آنها را در فایل Bronx_Chinese_retrors.json
که قبلاً تعیین کردهایم، پیدا کنید.
دقت کنید که برای اسکن دادهها میتوانید، از دستور cat
و less
بصورت زیر استفاده کنید:
cat Bronx_Chinese_retaurants.json | less
برای مرور دادهها صفحه به صفحه، از SPACE
استفاده کنید:
Outputdate":{"$date":"2015-01-14T00:00:00Z"},"grade":"Z","score":36}],"na{"_id":{"$oid":"5fc8402d141f5e54f9054f8d"},"address":{"building":"1236","coord":[-73.8893654,40.81376179999999],"street":"238 Spofford Ave","zipcode":"10474"},"borough":"Bronx","cuisine":"Chinese","grades":[{"date":{"$date":"2013-12-30T00:00:00Z"},"grade":"A","score":8},{"date":{"$date":"2013-01-08T00:00:00Z"},"grade":"A","score":10},{"date":{"$date":"2012-06-12T00:00:00Z"},"grade":"B","score":15}],
. . .
در آخر، برای خروج از دیتابیس MongoDB کلید q
را فشار دهید تا خارج شوید.
با ثبتنام در لیارا، ۱۰۰ هزار تومان اعتبار هدیه بگیرید و از سرور مجازی رایگان با کیفیت بالا و امکانات عالی استفاده کنید!
پشتیبانی ۲۴ ساعته برای کاربران سرور مجازی رایگان!
خرید سرور مجازی رایگان
جمعبندی
در این آموزش از لیار شما را با اصول import و export دادهها به و از پایگاهداده MongoDB آشنا کردیم. برای بهبود عملکرد و امنیت پایگاه داده MongoDB خود، استفاده از هاست ابری MongoDB لیارا را پیشنهاد میکنیم. این سرویس ابری با قابلیتهایی مانند پشتیبانی از Replication، پشتیبانگیری خودکار و مقیاسپذیری بالا، تجربهای راحت و مطمئن در مدیریت پایگاه دادهها برای کسبوکارهای مختلف فراهم میکند. با استفاده از این سرویس، میتوانید از امنیت بالا، عملکرد سریع و مدیریت آسان پایگاه دادههای خود بهرهمند شوید.