با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش Node.js در خدمت شما دوستان هستیم. در این جلسه قصد داریم به آموزش درج اطلاعات در MongoDB با node.js بپردازیم.
برای درج یک document یا رکورد در یک collection، از تابع ()insertOne استفاده می کنیم.
اولین پارامتر این تابع یک شی حاوی نام ها و مقادیر هر فیلد در document می باشد.
همچنین یک تابع callback نیز برای کار با خطاها و نتایج نیز دریافت می کند.
در مثال زیر یک document را در کالکشن customers قرار می دهیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 | var MongoClient = require('mongodb').MongoClient; var url = "mongodb://localhost:27017/"; MongoClient.connect(url, function(err, db) { if (err) throw err; var dbo = db.db("mydb"); var myobj = { name: "Company Inc", address: "Highway 37" }; dbo.collection("customers").insertOne(myobj, function(err, res) { if (err) throw err; console.log("1 document inserted"); db.close(); }); }); |
کد بالا را در فایلی به نام demo_mongodb_insert.js ذخیره و اجرا کنید:
C:\Users\Your Name>node demo_mongodb_insert.js |
خروجی:
۱ document inserted |
تکنه: اگر اقدام به درج document هایی در یک کالکشنی که وجود ندارد بکنید، mongodb به صورت خودکار یک کالکشن ایجاد میکند.
از تابع ()insertMany برای درج چند document در یک کالکشن استفاده می کنیم.
اولین پارامتر این تابع یک ارایه از اشیا است که حاوی اطلاعاتی هستند که شما می خواهید در کالکشن آن را قرار دهید.
همچنین این تابع یک تابع callback برای کار با خطاها و نتایج نیز دریافت می کند.
در مثال زیر چند document را در کالکشن customers درج می کنیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | var MongoClient = require('mongodb').MongoClient; var url = "mongodb://localhost:27017/"; MongoClient.connect(url, function(err, db) { if (err) throw err; var dbo = db.db("mydb"); var myobj = [ { name: 'John', address: 'Highway 71'}, { name: 'Peter', address: 'Lowstreet 4'}, { name: 'Amy', address: 'Apple st 652'}, { name: 'Hannah', address: 'Mountain 21'}, { name: 'Michael', address: 'Valley 345'}, { name: 'Sandy', address: 'Ocean blvd 2'}, { name: 'Betty', address: 'Green Grass 1'}, { name: 'Richard', address: 'Sky st 331'}, { name: 'Susan', address: 'One way 98'}, { name: 'Vicky', address: 'Yellow Garden 2'}, { name: 'Ben', address: 'Park Lane 38'}, { name: 'William', address: 'Central st 954'}, { name: 'Chuck', address: 'Main Road 989'}, { name: 'Viola', address: 'Sideway 1633'} ]; dbo.collection("customers").insertMany(myobj, function(err, res) { if (err) throw err; console.log("Number of documents inserted: " + res.insertedCount); db.close(); }); }); |
کد بالا را در فایلی به نام demo_mongodb_insert_multiple.js ذخیره و اجرا کنید:
C:\Users\Your Name>node demo_mongodb_insert_multiple.js |
خروجی:
Number of documents inserted: 14 |
هنگام اجرای تابع ()insertMany ، یک شی result برگشت داده می شود.
این شی حاوی اطلاعاتی درمورد چگونگی درج اطلاعات در دیتابیس است.
شی result برگشتی از مثال بالا به صورت زیر است:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | { result: { ok: 1, n: 14 }, ops: [ { name: 'John', address: 'Highway 71', _id: 58fdbf5c0ef8a50b4cdd9a84 }, { name: 'Peter', address: 'Lowstreet 4', _id: 58fdbf5c0ef8a50b4cdd9a85 }, { name: 'Amy', address: 'Apple st 652', _id: 58fdbf5c0ef8a50b4cdd9a86 }, { name: 'Hannah', address: 'Mountain 21', _id: 58fdbf5c0ef8a50b4cdd9a87 }, { name: 'Michael', address: 'Valley 345', _id: 58fdbf5c0ef8a50b4cdd9a88 }, { name: 'Sandy', address: 'Ocean blvd 2', _id: 58fdbf5c0ef8a50b4cdd9a89 }, { name: 'Betty', address: 'Green Grass 1', _id: 58fdbf5c0ef8a50b4cdd9a8a }, { name: 'Richard', address: 'Sky st 331', _id: 58fdbf5c0ef8a50b4cdd9a8b }, { name: 'Susan', address: 'One way 98', _id: 58fdbf5c0ef8a50b4cdd9a8c }, { name: 'Vicky', address: 'Yellow Garden 2', _id: 58fdbf5c0ef8a50b4cdd9a8d }, { name: 'Ben', address: 'Park Lane 38', _id: 58fdbf5c0ef8a50b4cdd9a8e }, { name: 'William', address: 'Central st 954', _id: 58fdbf5c0ef8a50b4cdd9a8f }, { name: 'Chuck', address: 'Main Road 989', _id: 58fdbf5c0ef8a50b4cdd9a90 }, { name: 'Viola', address: 'Sideway 1633', _id: 58fdbf5c0ef8a50b4cdd9a91 } ], insertedCount: 14, insertedIds: [ 58fdbf5c0ef8a50b4cdd9a84, 58fdbf5c0ef8a50b4cdd9a85, 58fdbf5c0ef8a50b4cdd9a86, 58fdbf5c0ef8a50b4cdd9a87, 58fdbf5c0ef8a50b4cdd9a88, 58fdbf5c0ef8a50b4cdd9a89, 58fdbf5c0ef8a50b4cdd9a8a, 58fdbf5c0ef8a50b4cdd9a8b, 58fdbf5c0ef8a50b4cdd9a8c, 58fdbf5c0ef8a50b4cdd9a8d, 58fdbf5c0ef8a50b4cdd9a8e, 58fdbf5c0ef8a50b4cdd9a8f 58fdbf5c0ef8a50b4cdd9a90, 58fdbf5c0ef8a50b4cdd9a91 ] } |
برای نمایش مقادیر این شی به صورت زیر عمل می کنیم:
console.log(res.insertedCount) |
اگر شما فیلد id_ را تعریف نکنید، MongoDB یکی برای شما اضافه می کند و یک id منحصر به فرد برای هر documnet اختصاص می دهد.
در مثال فیلد id_ را مشخص نکردیم و همانطور که می بینید، MongoDB این کار را انجام داده است.
اگر می خواهید فیلد id_ تعریف کنید، برای هر document باید یک مقدار منحصر به فرد در نظر بگیرید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var MongoClient = require('mongodb').MongoClient; var url = "mongodb://localhost:27017/"; MongoClient.connect(url, function(err, db) { if (err) throw err; var dbo = db.db("mydb"); var myobj = [ { _id: 154, name: 'Chocolate Heaven'}, { _id: 155, name: 'Tasty Lemon'}, { _id: 156, name: 'Vanilla Dream'} ]; dbo.collection("products").insertMany(myobj, function(err, res) { if (err) throw err; console.log(res); db.close(); }); }); |
کد بالا را در فایلی به نام demo_mongodb_insert_id.js ذخیره و اجرا کنید:
C:\Users\Your Name>node demo_mongodb_insert_id.js |
خروجی:
1 2 3 4 5 6 7 8 9 10 11 12 | { result: { ok: 1, n: 3 }, ops: [ { _id: 154, name: 'Chocolate Heaven }, { _id: 155, name: 'Tasty Lemon }, { _id: 156, name: 'Vanilla Dream } insertedCount: 3, insertedIds: [ 154, 155, 156 ] } |
جلسه آموزش درج اطلاعات در MongoDB با Node.js نیز به پایان رسید.
در جلسه بعد به آموزش دریافت اطلاعات از MongoDB با Node.js خواهیم پرداخت. با ما همراه باشید.