نکته مهم: این مقاله به مرور زمان، ویرایش و یا تکمیل میشود!
در صورتی که با مشکل تایپی، دستوری و یا مفهومی در این مقاله برخورد کردید، از شما دوست عزیز و گرامی، تقاضا میکنم که مرا مطلع کرده، تا نسبت به تصحیح و تکمیل آن در اسرع وقت اقدام نمایم.
با کمال تشکر داریوش تصدیقی
نسخه ۱.۲
ابتدا وارد بانک اطلاعاتی test میشویم، فارغ از اینکه این بانک اطلاعاتی واقعا وجود دارد یا خیر! برای این منظور از دستور ذیل استفاده میکنیم:
use test switched to db test db test
حال میخواهیم در بانک اطلاعاتی test، اقدام به ایجاد یک مجموعه (Collection) کرده، و در داخل آن، یک سند (Document) درج (ایجاد) نماییم.
در آموزشهای قبلی، توضیح دادیم که بر خلاف بانکهای اطاعاتی RDBMS، که ابتدا بانک اطلاعاتی و سپس جدول را با فیلدهای مشخص و البته با نوع (Type) مورد نظر ایجاد کرده و سپس اقدام به درج (ایجاد) رکورد میکنیم، در بانکهای اطلاعاتی NoSQL، خصوصا MongoDB، تنها کافی است که ابتدا وارد یک بانکاطلاعاتی شده (هر چند که هنوز وجود نداشته باشد) و سپس اقدام به درج (ایجاد) یک سند میکنیم. با درج اولین سند، به طور خودکار، ابتدا بانکاطلاعاتی و سپس مجموعه مورد نظر ایجاد میگردد!
برای درج یک سند، تنها کافی است که پس از کلمه db، نام مجموعه مورد نظر را نوشته، و پس از آن، از دستور insert، استفاده کرده و سند خود را در قالب JSON وارد نماییم.
db.users.insert( { "firstName" : "Dariush", "lastName" : "Tasdighi" } );
نتیجه اجرای دستور فوق:
writeResult({ "nInserted" : 1 })
به همین سادگی!
پس از اجرای دستور فوق، ابتدا بانک اطلاعاتی test، و سپس مجموعه users و در ادامه یک سند با دو فیلد در داخل آن مجموعه ایجاد میگردد.
توجه: عبارتی که به عنوان پارامتر ورودی تابع insert، نوشته شده است، یک عبارت JSON میباشد!
ایجاد یک عبارات JSON، بسیار ساده است!
یک عبارت JSON میتواند به یکی از دو صورت ذیل تعریف شود:
یک شیء JSON، چیزی بیش از یک سری Key, Value نمیباشد. باید دقت داشته باشیم که بر خلاف اشیاء JavaScript (که البته بسیار به عبارات JSON شبیه میباشند)، باید کلمات Key، بین "" (دابل کوتیشن باز و بسته) نوشته شود.
بعد از Key، و قبل از Value، همیشه از : (کالون) استفاده میشود.
بین Key, Value ها، باید , (کاما) نوشته شود.
در صورتی که Value، یک متن باشد، باید بین "" (دابل کوتیشن باز و بسته) نوشته شود.
در صورتی که Value، یک Boolean باشد، میتواند فقط یکی از دو مقدار true و یا false را به خودش اختصاص دهد. دقت داشته باشیم که دستورات و مقادیر از پیش تعریف شده JavaScript از قانون Case Sensitive تبعیت میکنند، لذا نسبت به بزرگ و کوچک نوشتن آنها حساس میباشد.
در صورتی که Value، یک عدد باشد، بدون هیچ پیشوند و پسوندی (بدون "") نوشته میشود.
در صورتی که Value، نال (null) باشد، به همان شکل null نوشته میشود.
نکته: Value میتواند خودش یک شیء یا یک آرایه از هر چیزی باشد و به صورتی تو در تو (Nested) نوشته شود.
{ "fullName" : "Dariush Tasdighi", "age" : 47, "salary" : 100.20, "active" : true, "job": null, "favoriteColors": [ "Red", "Green" ] }
با استفاده از دستور ذیل، خواهیم دید که به طور رسمی بانک اطلاعاتی تست ایجاد شده است:
show databases
نتیجه اجرای دستور فوق:
admin 0.000GB config 0.000GB local 0.000GB test 0.000GB
با استفاده از دستور ذیل، فهرست مجموعههای موجود در بانکاطلاعاتی test را مشاهده خواهیم کرد، و خواهیم دید که مجموعه users اضافه شده است:
show collections
نتیجه اجرای دستور فوق:
users
همانگونه که در مقالههای قبل ادعا کردیم، با ایجاد اولین سند، به طور خودکار، بانکاطلاعاتی، مجموعه مورد نظر و سند ایجاد میگردد!
با استفاده از دستور find میتوانیم، فهرست اسناد (اطلاعات) یک مجموعه را مشاهده نماییم:
db.users.find();
نتیجه اجرای دستور فوق:
{ "_id" : ObjectId("563bb647ab7cbdeddbb081f8"), "firstName" : "Dariush", "lastName" : "Tasdighi" }
توجه: دستور find، آن هم به شکل فوق، دقیقا معادل دستور SELECT * FROM users در SQL میباشد!
توجه: همانگونه که مشاهده میشود، MongoDB، پس از درج (ایجاد) هر سند، به طور خودکار، یک فیلد به نام id_ با مقداری تصادفی و کاملا منحصر به فرد، ایجاد میکند!
توجه: در MongoDB، به تبعیت از JavaScript، رسم بر آن است که تمامی اسامی مربوط به بانکهای اطلاعاتی، مجموعهها، فیلدها و غیره، به صورت CamelCase نوشته شوند! (یعنی کلمه اول همه حروف آنها کوچک، و کلمات بعد، حرف اول آنها بزرگ و بقیه حروف آنها کوچک نوشته شوند)
پایان