در قسمت قبل با نحوه راه اندازی MongoDB آشنا شدیم و حالا باید جلوتر برویم. برای شروع باید از اشیاء JSON یک یادآوری داشته باشیم:
[ { "departureAirport": "MUC", "arrivalAirport": "SFO", "aircraft": "Airbus A380", "distance": 12000, "intercontinental": true }, { "departureAirport": "LHR", "arrivalAirport": "TXL", "aircraft": "Airbus A320", "distance": 950, "intercontinental": false } ]
آرایه بالا حاوی دو شیء JSON است که حاوی اطلاعات دو پرواز خاص هستند (ساختار اشیاء JSON دقیقا به همین شکل است). یعنی جفت های key: value به صورتی که key ها (یا همان name ها) دارای double quotation هستند اما این مسئله برای value ها به نوع داده هایشان مرتبط است. ما برای رشته ها از double quotation استفاده می کنیم اما برای اعداد و مقادیر Boolean چنین کاری را انجام نمی دهیم.
بگذارید یک پایگاه داده جدید به نام flights بسازیم. برای این کار باید دستور زیر را اجرا کنیم:
use flights
از آنجایی که هنوز پایگاه داده ای به نام flights وجود ندارد، خود MongoDB آن را به صورت خودکار برایمان می سازد. به این روش ساخت پایگاه های داده implicit creation (ساخت غیر مستقیم) می گوییم. سپس می گوییم:
db.flightData.insertOne()
هنوز نباید این کد را اجرا کنید. من شیء اول از آرایه بالا را انتخاب کرده و درون آن قرار می دهم:
db.flightData.insertOne({"departureAirport": "MUC", "arrivalAirport": "SFO", "aircraft": "Airbus A380", "distance": 12000, "intercontinental": true})
همانطور که از قسمت قبل یاد گرفتیم می توانیم از find برای نمایش آن استفاده کنیم:
db.flightData.find().pretty()
خروجی ما به شکل زیر خواهد بود:
"_id" : ObjectId("5e82de3aba557900a236a04c"), "departureAirport" : "MUC", "arrivalAirport" : "SFO", "aircraft" : "Airbus A380", "distance" : 12000, "intercontinental" : true
در خروجی بالا فیلد id_ به صورت خودکار اضافه شده است. همچنین ObjectId یک data type یا نوع داده خاص است که در MongoDB استفاده می شود. اگر دقت کنید قرار بود همه کد های ما به صورت JSON ذخیره شود، مگر نه؟ اما اگر به ObjectId نگاه کنید به سادگی می فهمید که این نوشتار (syntax) در JSON معتبر نیست. چرا؟ به دلیل اینکه مقادیر ما باید در رشته قرار بگیرند و داشتن یک شکل تابع مانند غلط است. نکته ای که در کد بالا وجود دارد این است که ما داده ها را به صورت JSON پاس داده ایم اما آن ها در پس زمینه به صورت BSON ذخیره می شوند. یعنی به کد binary (دودویی) تبدیل می شوند:
همانطور که می بینید driver ها هستند که داده های ما را تبدیل به داده های باینری می کنند. این کار دو مزیت اصلی دارد:
نکته بعدی این است که id_
تولید شده توسط MongoDB بسیار طولانی است و ممکن است شما از آن خوشتان نیاید و بخواهید id های خودتان را ذخیره کنید. این کار کاملا ممکن است. مثلا می گوییم:
db.flightData.insertOne({departureAirport: "TXL", arrivalAirport: "LHR", _id: "txl-1hr-1"})
اگر شما خودتان فیلدی به نام id_ را ثبت کنید، MongoDB دیگر این فیلد را برایتان نمی سازد و نوعش ObjectId نخواهد بود. همانطور که در کد بالا می بینید من مقدار دلخواه خودم را برای id_ در نظر گرفته ام. حواستان باشد که فقط id تعریف نکنید بلکه حتما id_ باشد (علامت آندرلاین فراموش نشود). در ضمن از کد بالا مشخص است که داده های جدید نیازی به پیروی از ساختار داده های قبلی ندارند.
البته id_ باید یکتا باشد، یعنی اگر یک ردیف داده دیگر با همین آیدی (txl-1hr-1) ثبت کنم، خطایی به من داده می شود که این id_ قبلا وجود داشته است.
اگر شما یک تحلیل گر داده باشید، اگر یک توسعه دهنده وب باشید، اگر ادمین زیرساخت یک شرکت باشید یا هر سمت دیگری که داشته باشید، تمام عملیات های ممکن با پایگاه داده از چهار حالت خارج نیست:
حرف اول تمام این عملیات ها (Create و Read و Update و Delete) همان CRUD است، یعنی چهار عمل اصلی کار با داده ها. من مهم ترین متد های موجود در هر کدام از این عملیات ها را برایتان لیست می کنم.
دستورات مهم در عملیات Create:
دستورات مهم در عملیات Read:
دستورات مهم در عملیات Update:
دستورات مهم در عملیات Delete:
خلاصه تمام این دستورات را در تصویر زیر می بینید:
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.