دیتابیس MongoDB - دستورات مقدماتی

در قسمت قبلی مفاهیم MongoDB را به اختصار توضیح دادم. در این بخش به شرح دستورات ابتدایی در MongoDB می پردازم. ساخت دیتابیس (create database):در MongoDB برای ساخت دیتابیس از <use <DB_NAME استفاده می شود.برای مثال تکه کد زیر دیتابیس mydb را ایجاد (رزرو) کرده و به آن connect می شود. در ادامه توضیح داده می شود که این دستور به منزله ساخت دیتابیس نیست.> use mydb switched to db mydbبرای مشاهده دیتابیس connect شده از دستور زیر استفاده می کنیم:> db mydbبرای مشاهده لیست دیتابیس ها از دستور زیر استفاده می کنیم:> show dbs admin 0.000GB config 0.000GB local 0.000GBنکته: برای نمایش دیتابیسی که به تازگی ساخته شده است باید حتما یک رکورد در آن insert کرد.حدف دیتابیس (drop database)برای حذف یک دیتابیس از دستور زیر استفاده می کنیم:db.dropDatabase()مثال>show dbs local 0.78125GB mydb 0.23012GB test 0.23012GB mydb 0.840256B>db.dropDatabase() >{ &quotdropped&quot : &quotmydb&quot, &quotok&quot : 1 }>show dbs local 0.78125GB test 0.23012GBساخت یک collection:db.createCollection(name, options)در دستور بالا name نام collection و option که اختیاری است تنظیمات مربوط به size و indexing را مشخص می کند و از بین گزینه های (capped, autoIndexId, size, max) انتخاب می شود.مثال>use test switched to db test >db.createCollection(&quotmycollection&quot) { &quotok&quot : 1 }برای نمایش لیست collection های یک دیتابیس از دستور زیر استفاده می کنیم:>use test switched to db test >show collections mycollectionنکته: در MongoDB نیازی به ساخت collection نیست، با insert اولین مقدار collection به صورت اتوماتیک ساخته می شود.حذف یک collection:از دستور زیر برای حذف یک collection استفاده می شود:db.COLLECTION_NAME.drop()انواع data type در MongoDB:در MongoDB هم مانند سایر پایگاه داده ها انواع مختلف data type را در اختیار داریم. از انواع دیتا تایپ های مورد استفاده می توان بهString, Boolean, Double, Arrays, Timestamp, Object, Null, Symbol, Date, Object ID, Binary data, Code و Regular expression اشاره کرد.ورود اطلاعات (Insert):ورود اطلاعات در MongoDB با استفاده از دستور db.COLLECTION_NAME.insert(document) صورت می گیرد.مثال> db.users.insert({ ... _id : ObjectId(&quot507f191e810c19729de860ea&quot), ... title: &quotMongoDB Overview&quot, ... description: &quotMongoDB is no sql database&quot, ... by: &quottutorials point&quot, ... url: &quothttp://www.tutorialspoint.com&quot, ... tags: ['mongodb', 'database', 'NoSQL'], ... likes: 100 ... }) WriteResult({ &quotnInserted&quot : 1 })نکته: در صورتی که collection مورد نظر وجود نداشته باشد آنگاه MongoDB آن را ساخته و سپس insert را انجام می دهد.نکته: در صورتی که id_ را مشخص نکنیم آنگاه MongoDB به صورت اتوماتیک یک فیلد با مقدار منحصر به فرد از نوع unique ObjectId در collection ایجاد می کند.متد ()insertOne:> db.empDetails.insertOne( { First_Name: &quotRadhika&quot, Last_Name: &quotSharma&quot, Date_Of_Birth: &quot1995-09-26&quot, e_mail: &quotradhika_sharma.123@gmail.com&quot, phone: &quot9848022338&quot }) { &quotacknowledged&quot : true, &quotinsertedId&quot : ObjectId(&quot5dd62b4070fb13eec3963bea&quot) }متد ()insertMany:برای insert چند رکورد همزمان از این متد استفاده می شود.> db.empDetails.insertMany( [ { First_Name: &quotRadhika&quot, Last_Name: &quotSharma&quot, Date_Of_Birth: &quot1995-09-26&quot, e_mail: &quotradhika_sharma.123@gmail.com&quot, phone: &quot9000012345&quot }, { First_Name: &quotRachel&quot, Last_Name: &quotChristopher&quot, Date_Of_Birth: &quot1990-02-16&quot, e_mail: &quotRachel_Christopher.123@gmail.com&quot, phone: &quot9000054321&quot }, { First_Name: &quotFathima&quot, Last_Name: &quotSheik&quot, Date_Of_Birth: &quot1990-02-16&quot, e_mail: &quotFathima_Sheik.123@gmail.com&quot, phone: &quot9000054321&quot } ] ) { &quotacknowledged&quot : true, &quotinsertedIds&quot : [ ObjectId(&quot5dd631f270fb13eec3963bed&quot), ObjectId(&quot5dd631f270fb13eec3963bee&quot), ObjectId(&quot5dd631f270fb13eec3963bef&quot) ] }متد ()find:برای استخراج داده ها از collection ها از این متد استفاده می کنیم.>db.COLLECTION_NAME.find()متد ()prety:برای نمایش ساختاریافته داده های استخراج شده از متد find از ()prety استفاده می کنیم.>db.COLLECTION_NAME.find().pretty()متد ()findOne:معادل ()first یا ()one در سایر پایگاه های داده است و یک رکورد را برمیگرداند.>db.COLLECTIONNAME.findOne()مثال> db.mycol.findOne({title: &quotMongoDB Overview&quot}) { &quot_id&quot : ObjectId(&quot5dd6542170fb13eec3963bf0&quot), &quottitle&quot : &quotMongoDB Overview&quot, &quotdescription&quot : &quotMongoDB is no SQL database&quot, &quotby&quot : &quottutorials point&quot, &quoturl&quot : &quothttp://www.tutorialspoint.com&quot, &quottags&quot : [ &quotmongodb&quot, &quotdatabase&quot, &quotNoSQL&quot ], &quotlikes&quot : 100 }متد find به همراه AND:>db.mycol.find({ $and: [ {<key1>:<value1>}, { <key2>:<value2>} ] })مثال> db.mycol.find({$and:[{&quotby&quot:&quottutorials point&quot},{&quottitle&quot: &quotMongoDB Overview&quot}]}).pretty() { &quot_id&quot : ObjectId(&quot5dd4e2cc0821d3b44607534c&quot), &quottitle&quot : &quotMongoDB Overview&quot, &quotdescription&quot : &quotMongoDB is no SQL database&quot, &quotby&quot : &quottutorials point&quot, &quoturl&quot : &quothttp://www.tutorialspoint.com&quot, &quottags&quot : [ &quotmongodb&quot, &quotdatabase&quot, &quotNoSQL&quot ], &quotlikes&quot : 100 }متد find به همراه OR:>db.mycol.find( { $or: [ {key1: value1}, {key2:value2} ] } ).pretty()مثال>db.mycol.find({$or:[{&quotby&quot:&quottutorials point&quot},{&quottitle&quot: &quotMongoDB Overview&quot}]}).pretty() { &quot_id&quot: ObjectId(7df78ad8902c), &quottitle&quot: &quotMongoDB Overview&quot, &quotdescription&quot: &quotMongoDB is no sql database&quot, &quotby&quot: &quottutorials point&quot, &quoturl&quot: &quothttp://www.tutorialspoint.com&quot, &quottags&quot: [&quotmongodb&quot, &quotdatabase&quot, &quotNoSQL&quot], &quotlikes&quot: &quot100&quot }متد find به همراه AND و OR:مثال>db.mycol.find({&quotlikes&quot: {$gt:10}, $or: [{&quotby&quot: &quottutorials point&quot}, {&quottitle&quot: &quotMongoDB Overview&quot}]}).pretty() { &quot_id&quot: ObjectId(7df78ad8902c), &quottitle&quot: &quotMongoDB Overview&quot, &quotdescription&quot: &quotMongoDB is no sql database&quot, &quotby&quot: &quottutorials point&quot, &quoturl&quot: &quothttp://www.tutorialspoint.com&quot, &quottags&quot: [&quotmongodb&quot, &quotdatabase&quot, &quotNoSQL&quot], &quotlikes&quot: &quot100&quot }متد find به همراه NOR:>db.COLLECTION_NAME.find( { $not: [ {key1: value1}, {key2:value2} ] } )مثال> db.empDetails.find( { $nor:[ 40 {&quotFirst_Name&quot: &quotRadhika&quot}, &quotLast_Name&quot: &quotChristopher&quot} ] } ).pretty() { &quot_id&quot : ObjectId(&quot5dd631f270fb13eec3963bef&quot), &quotFirst_Name&quot : &quotFathima&quot, &quotLast_Name&quot : &quotSheik&quot, &quotAge&quot : &quot24&quot, &quote_mail&quot : &quotFathima_Sheik.123@gmail.com&quot, &quotphone&quot : &quot9000054321&quot }متد find به همراه NOT:>db.COLLECTION_NAME.find( { $NOT: [ {key1: value1}, {key2:value2} ] } ).pretty()مثال> db.empDetails.find( { &quotAge&quot: { $not: { $gt: &quot25&quot } } } ) { &quot_id&quot : ObjectId(&quot5dd6636870fb13eec3963bf7&quot), &quotFirst_Name&quot : &quotFathima&quot, &quotLast_Name&quot : &quotSheik&quot, &quotAge&quot : &quot24&quot, &quote_mail&quot : &quotFathima_Sheik.123@gmail.com&quot, &quotphone&quot : &quot9000054321&quot }متد Update:در MongoDB دو متد update و save جهت به روزرسانی داده های collection ها استفاده می شود.>db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)مثال >db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New MongoDB Tutorial'}}) WriteResult({ &quotnMatched&quot : 1, &quotnUpserted&quot : 0, &quotnModified&quot : 1 })نکته: به طور پیشفرض MongoDB ویرایش اطلاعات را روی یک document انجام می دهد. در صورتی که بحواهیم چندین document را ویرایش کنیم باید پارامتر multi را true ست کنیم.>db.mycol.update({'title':'MongoDB Overview'}, {$set:{'title':'New MongoDB Tutorial'}},{multi:true})متد updateOneاین متد تنها یک document را update می کند.>db.COLLECTION_NAME.updateOne(<filter>, <update>)متد updateManyاین متد همه document هایی که با شرط مطابق باشند را update می کند.>db.COLLECTION_NAME.update(<filter>, <update>)متد Saveاین متد document فعلی را با document ارسال شده جایگزین می کند.>db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})مثال>db.mycol.save( { &quot_id&quot : ObjectId(&quot507f191e810c19729de860ea&quot), &quottitle&quot:&quotTutorials Point New Topic&quot, &quotby&quot:&quotTutorials Point&quot } )حذف یک documentمتد remove برای حذف یک document از collection در دسترس است.>db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)مثال>db.mycol.remove({'title':'MongoDB Overview'})نکته: برای حذف یک document مطابق با شرط از دستور زیر استفاده می شود:>db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)نکته: برای حذف document های یک collection از دستور زیر استفاده می کنیم:> db.mycol.remove({})