با عرض سلام خدمت کاربران محترم سایت پی وی لرن. با یکی دیگر از سری جلسات دوره آموزش کامل node.js در خدمت شما هستیم. در جلسه قبل به آموزش حذف کالکشن از MongoDB با node.js پرداختیم. در این جلسه قصد داریم به آموزش بروزرسانی اطلاعات MongoDB با node.js ( بروزرسانی فیلد های خاص ، بروزرسانی چندین document ، شی result ) بپردازیم.
با استفاده از تابع ()updateOne میتوانید داده های یک رکورد یا document را بروزرسانی کنید.
اولین پارامتر این تابع یک شی کوئری است که مشخص میکند کدام document باید بروزرسانی شود.
اگر کوئری بیش از یک document را پیدا کند، تنها اولین document بروزرسانی می شود.
دومین پارامتر هم شامل یک شی است که اطلاعات جدید را درخود نگه می دارد.
در مثال زیر مقدار فیلد name و address یک document با فیلد address به مقدار “Vally 345″، بروزرسانی می شود:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var MongoClient = require('mongodb').MongoClient; var url = "mongodb://127.0.0.1:27017/"; MongoClient.connect(url, function(err, db) { if (err) throw err; var dbo = db.db("mydb"); var myquery = { address: "Valley 345" }; var newvalues = { $set: {name: "Mickey", address: "Canyon 123" } }; dbo.collection("customers").updateOne(myquery, newvalues, function(err, res) { if (err) throw err; console.log("1 document updated"); db.close(); }); }); |
کد بالا را در فایلی به نام demo_update_one.js ذخیره و اجرا کنید:
C:\Users\Your Name>node demo_update_one.js |
خروجی:
1 | 1 document updated |
با استفاده از عملگر set$ ، تنها فیلد های مشخص شده بروزرسانی یا آپدیت می شوند:
1 2 3 4 5 | ... var myquery = { address: "Valley 345" }; var newvalues = { $set: { address: "Canyon 123" } }; dbo.collection("customers").updateOne(myquery, newvalues, function(err, res) { ... |
با استفاده از متد ()updateMany می توان تمام document هایی را که کوئری برمیگرداند را آپدیت کرد.
در مثال زیر تمام document هایی که مقدار فیلد name آن ها با حرف “S” آغاز می شود را بروزرسانی می کند:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var MongoClient = require('mongodb').MongoClient; var url = "mongodb://127.0.0.1:27017/"; MongoClient.connect(url, function(err, db) { if (err) throw err; var dbo = db.db("mydb"); var myquery = { address: /^S/ }; var newvalues = {$set: {name: "Minnie"} }; dbo.collection("customers").updateMany(myquery, newvalues, function(err, res) { if (err) throw err; console.log(res.result.nModified + " document(s) updated"); db.close(); }); }); |
کد بالا را در فایلی به نام demo_update_many.js ذخیره و اجرا کنید:
C:\Users\Your Name>node demo_update_many.js |
خروجی:
1 | 2 document(s) updated |
توابع ()updateOne و ()updateMany یک شی که حاوی اطلاعاتی درباره چگونگی تاثیر اجرا بر دیتابیس است را برمیگرداند.
شی result به صورت زیر میباشد:
1 | { n: 1, nModified: 2, ok: 1 } |
برای دسترسی به مقادیر این شی به صورت زیر عمل میکنیم:
1 | console.log(res.result.nModified); |
جلسه آموزش بروزرسانی اطلاعات MongoDB با node.js نیز به پایان رسید.
در جلسه بعد به آموزش محدود کردن نتایج MongoDB با node.js خواهیم پرداخت. با ما همراه باشید.
همچنین می توانید نظرات و سوالات خود را از طریق بخش نظرات سایت با ما درمیان بگذارید.