خب، اول اینکه یک نوع دیتابیس است! منتها برخلاف دیتابیسهای معروف، از نوع SQL و رابطهای نیست. یک پایگاه دادهی سند-گرای متنباز، کارا، مقیاسپذیر، بدون نیاز به طرحبندی اولیه با تفکر چابکی توسعهگران که به زبان برنامهنویسی سی++ نوشته شده است. سند-گرا (document-oriented) بدین معناست که به جای اینکه همانند پایگاههای دادههای رابطهای کلاسیک، دادهها را در جداول ذخیره کند، دادههای ساختار یافته را در اسنادی با قالبی پویا شبیه به json ذخیرهسازی میکند. این قالب بیسون (BSON) نامیده میشود.
مزایا:
>npm install mongodb
//Including the required packages var mongo = require('mongodb'); //Establishing the connection var new_db = "mongodb://localhost:27017/demo_db"
که در آن:
اکنون به کمک متد connect ارتباط را برقرار میکنیم. Connect() یک متد داخلی است که برای ایجاد یک ارتباط با نمونهای از کلاس MongoDB استفاده میشود و مقداری که برمیگرداند، رفرنس دیتابیس مرتبط شده است. در مثال زیر، یک نمونهی جدید از کلاس MongoDB که در localhost درحال اجراست، نمونهسازی میشود و رفرنس به دیتابیس demo_db را برمیگرداند. به قطعه کد زیر دقت کنید:
//File Name is : demo-db.js //establishing the connection mongo.connect(new_db ,(error , db) => { if (error){ throw error; } console.log("Database demo_db created successfully"); //To close the connection db.close(); });
با دستور زیر در ترمینال یا خط فرمان، قطعه کد بالا را اجرا میکنیم:
> node demo-db.js Database demo_db created successfully
تبریک! شما با موفقیت ارتباطی را با mongodb به کمک نود جی اس برقرار کردید.
متد insertOne(): به کمک این متد داخلی، میتوان دادهای را در کالکشن mongoDb درج نمود:
//Name of the file : insert-mongo.js mongo.connect(new_db , function(error , db){ if (error){ throw error; } var data = { name : "Dayush" , age : "25" , mobile : "1234567890" } db.collection("details").insertOne(data, (err , collection) => { if(err) throw err; console.log("Record inserted successfully"); console.log(collection); }); });
اجرا و نتیجه اجرای کد فوق:
>node insert-mongo.js Record inserted successfully { result: { ok: 1, n: 1 }, connection: null, message: undefined, ops: [ { name: 'Daryush', age: '25', mobile: '1234567890', _id: 597073b2c6f60f5b3c23a1a5 } ], insertedCount: 1, insertedId: 597073b2c6f60f5b3c23a1a5 }
//name of the file : read-one.js mongo.connect(new_db , function(error , db){ if (error){ throw error; } //findOne() reads the first occurance of any data from the database. db.collection("details").findOne({}, (err , collection) => { if(err) throw err; console.log("Record Read successfully"); console.log(collection); db.close(); }); });
قطعه کد فوق را اجرا می کنیم و نتیجه را میبینیم:
> node read-one.js Record Read successfully { name: 'Nodejsera', age: '23', mobile: '9876543210', _id: 59706a56a4f6761e3cc22c98 }
2. متد find(): این متد تمام داداها را از کالکشن mongoDb میخواند:
//name of the file : read-all.js mongo.connect(new_db , function(error , db){ if (error){ throw error; } //Read All the data from the "details" collection. db.collection("details").find({}).toArray( (err , collection) => { if(err) throw err; console.log("Record Read successfully"); console.log(collection); db.close(); }); });
اجرای قطعه کد فوق:
> node read-all.js Record Read successfully [ { name: 'Nodejsera', age: '23', mobile: '9876543210', _id: 59706a56a4f6761e3cc22c98 }, { name: 'rishabhio', age: '25', mobile: '1234567890', _id: 59706c3771da112bd8b922dc }, { name: 'ِDaryush', age: '25', mobile: '1234567890', _id: 597073b2c6f60f5b3c23a1a5 } ]
//name of the file : update-one.js mongo.connect(new_db ,(error , db) => { if (error){ throw error; } //Query parameter is used to search the collection. var query = { name : "rishabhio" }; //And When the query matches the data in the DB , "data" parameter is used to update the value. var data = { name : "nodejsera.com" , mobile : "1234567890" } //Accessing the collection using nodejs db.collection("details").updateOne(query , data, (err , collection) => { if(err) throw err; console.log("Record updated successfully"); console.log(collection); }); });
و اجرای آن:
> node update-one.js Record updated successfully { result: { ok: 1, n: 1, nModified: 1 }, connection: null, message: undefined, modifiedCount: 1, upsertedId: null, upsertedCount: 0, matchedCount: 1 }
2. upddateMany(): یک متد داخلی mongodb که یک کوئری روی mongodb اجراکرده و تمام وقوعشان را آپدیت میکند.
//name of the file : update-all.js mongo.connect(new_db ,(error , db) => { if (error){ throw error; } //query store the search condition var query = { age : {$gt : "22" } }; //data stores the updated value var data = { $set : {age : "above 22" } } //CREATING A COLLECTION IN MONGODB USING NODE.JS db.collection("details").updateMany(query , data, (err , collection) => { if(err) throw err; console.log(collection.result.nModified + " Record(s) updated successfully"); //It will console the number of rows updated console.log(collection); db.close(); }); });
اجرای آن:
> node update-all.js node updateMany-mongodb-nodejs.js 3 Record(s) updated successfully { result: { ok: 1, n: 3, nModified: 3 }, connection: null, message: undefined, modifiedCount: 3, upsertedId: null, upsertedCount: 0, matchedCount: 3 }
//name of the file : delete-one.js mongo.connect(new_db ,(error , db) => { if (error){ throw error; } //query stores the search condition var query = { age : "above 22" }; //Accessing a COLLECTION IN MONGODB USING NODE.JS db.collection("details").deleteOne(query , (err , collection) => { if(err) throw err; console.log(collection.result.n + " Record(s) deleted successfully"); console.log(collection); db.close(); }); });
و اجرای کد فوق:
> node delete-one.js 1 Record(s) deleted successfully { result: { ok: 1, n: 1 }, connection: null, message: undefined, deletedCount: 1 }
2. متد deleteMany(): این هم یک متد داخلی دیگر، که تمام نتایج حاصل از وقوع یک کوئری روی کالکشن mangodb را حذف میکند:
//name of the file : delete-all.js mongo.connect(new_db ,(error , db) => { if (error){ throw error; } //Search query for deletion var query = { age : "above 22" }; //Accessing the collection db.collection("details").deleteMany(query , (err , collection) => { if(err) throw err; console.log(collection.result.n + " Record(s) deleted successfully"); console.log(collection); db.close(); }); });
و اجرا:
> node delete-all.js 2 Record(s) deleted successfully { result: { ok: 1, n: 2 }, connection: null, message: undefined, deletedCount: 2 }
در درس امروز از دوره آموزشی 30 روز با نود جی اس، یاد گرفتیم چگونه به کمک نود جی اس یک ارتباط با دیتابیس MongoDB برقرار کنیم. همچنین اعمال اصلی CRUD یا ایجاد/درج (Crud)، خواندن (Read)، بروزرسانی (Update) و حذف (Delete) را تمرین کردیم.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.