آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش ویرایش اطلاعات (متد Update) در پایگاه داده MongoDB با Node.js

دوره های مرتبط با این مقاله

آموزش ویرایش اطلاعات (متد Update) در پایگاه داده MongoDB با Node.js:

می توانید اطلاعات یک رکورد (Record) جدول یا آن طور که در پایگاه داده MongoDB به آن سند (Document) می گویند را به وسیله متد updateOne() در Node.js ویرایش یا update کنید.
پارامتر اول متد updateOne() در Node.js،تعیین کننده مشخصات رکورد یا document ای است که می خواهید اطلاعات آن را ویرایش نمایید.

نکته :

اگر Node.js در هنگام انجام عملیات update رکورد،بیش از یک رکورد مشابه با اطلاعات جستجو یا query پیدا کند،فقط اطلاعات اولین رکورد را ویرایش خواهد کرد.

پارامتر دوم در متد updateOne() تعیین کننده مقادیر جدیدی است که می خواهید در رکورد قرار بگیرند.
مثال عملی:در کد مثال زیر،اطلاعات یک رکورد را در پایگاه داده MongoDB با Node.js ویرایش کرده ایم.مراحل انجام کار به صورت زیر است:

  • ابتدا به پایگاه داده mydb متصل شده ایم.
  • توسط شی جستجو myquery،به برنامه اعلام کردیم رکوردی در جدول را پیدا کند که مقدار فیلد address آن برابر با “valley 345” است.
  • توسط شی newvalues،مقادیر جدید جهت فیلدهای name و address رکورد مورد نظر را تعیین کرده ایم.
  • توسط دستور updateOne()،اطلاعات رکورد مورد نظر در جدول customers را ویرایش کرده ایم.
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
            

Node.js پس از ویرایش اطلاعات رکورد مورد نظر،پیام زیر را صادر می کند:

1 document updated
            

آموزش ویرایش فیلد های مورد نظر در متد UpdateOne() :

هنگامی که از پارامتر $set در متد UpdateOne() برای تعیین مقادیر جدید فیلدها استفاده می کنید،فقط مقادیر فیلدهای تعیین شده تغییر خواهند کرد و سایر فیلدهای رکورد،بدون تغییر باقی می مانند.
مثال: در مثال زیر،با پارامتر $set،فقط مقدار جدیدی جهت فیلد address تعیین شده است.لذا پس از ویرایش رکورد،فقط اطلاعات فیلد آدرس به روز شده و سایر فیلدها،بدون تغییر خواهند بود:

...
  var myquery = { address: "Valley 345" };
  var newvalues = { $set: { address: "Canyon 123" } };
  dbo.collection("customers").updateOne(myquery, newvalues, function(err, res) {
...
            

پس از اجرای دستور فوق،برنامه پیام زیر را صادر می کند:

C:\Users\My Name>node demo_update_set.js
1 document updated
            

آموزش ویرایش چندین رکورد در MongoDB با متد UpdateMany:

اگر می خواهید اطلاعات کلیه رکوردهایی که مشابه جستجو query مورد نظرتان هستند،همزمان با هم ویرایش شوند،بایستی از دستور updateMany() استفاده کنید.
مثال عملی:در کد مثال عملی زیر،توسط متد updateMany()،مقدار فیلد address کلیه رکوردهایی که مقدار فیلد address آنها با حرف S شروع می شوند را به مقدار Minnie تغییر داده ایم:

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

برنامه پس از ویرایش اطلاعات رکوردهای هدف،تعداد آن ها را نیز نمایش می دهد:

2 document(s) updated
            

آموزش کار با شی نتیجه Result Object در MongoDB Node.js:

متدهای updateOne() و updateMany() در Node.js،پس از اجرای دستورات،یک شی نتیجه یا Result Object بر می گردانند.این شی حاوی اطلاعاتی درباره نتیجه انجام عملیات و رکوردهایی که در پایگاه داده،تغییر کرده اند می باشند.
بیشتر اطلاعاتی که شی Result Object بر می گرداند،کاربرد خاصی ندارند.اما این شی حاوی یک شی به نام result است که شامل نتیجه نهایی اجرای دستورها و تعداد رکوردهایی که ویرایش شده اند،می باشد.
اطلاعات شی result،شبیه کد زیر می باشد:

{ n: 1, nModified: 2, ok: 1 }
            

می توانید همانند مثال زیر،توسظ شی result،تعداد رکوردهایی که در پایگاه داده هدف ویرایش شده اند را در خروجی نمایش دهید:

console.log(res.result.nModified);
            

برنامه،تعداد رکوردها را به صورت زیر در خروجی بر می گرداند:

2
            
  • 22
  •    0
  • تاریخ ارسال :   1398/04/19

دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .