مشخصات مقاله
آموزش حذف اطلاعات با متد Delete در MongoDB Node.js
آموزش حذف اطلاعات (Delete) در پایگاه داده MongoDB:
برای حذف یک رکورد (Record)،یا آنطور که در MongoDB به آن سند یا document می گویند،از متد deleteOne() استفاده می شود.
پارامتر اول متد deleteOne()، یک شی جستجو یا query object است که دربرگیرنده مشخصات رکوردی است که می خواهید از جدول پایگاه داده MongoDB حذف نمایید.
اگر عملیات جستجو یا query،بیش از یک سند یا رکورد که مشابه اطلاعات درخواستی است،پیدا کند،فقط نمونه اول را پاک خواهد کرد.
در کد مثال عملی زیر،از برنامه Node.js درخواست شده تا به کمک متد deleteOne() و شی جستجو myquery،رکوردی از جدول پایگاه داده MongoDB را حذف نمایید که مقدار فیلد آدرس (address) آن برابر با “Mountain 21” است:
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 myquery = { address: 'Mountain 21' }; dbo.collection("customers").deleteOne(myquery, function(err, obj) { if (err) throw err; console.log("1 document deleted"); db.close(); }); });
کد فوق را در فایل "demo_delete.js" ذخیره کرده و با دستور زیر،آن را اجرا نمایید:
C:\Users\Your Name>node demo_delete.js
برنامه پس از حذف رکورد مورد نظر،خروجی زیر را برمی گرداند:
1 record deleted
آموزش کار با متد deleteMany() در پایگاه داده MongoDB:
برای حذف اطلاعات بیش از یک رکورد در پایگاه داده MongoDB،از متد deleteMany() استفاده می شود.
در پارامتر اول متد deleteMany()،مشخصات فیلد یا فیلدهای رکوردهای مورد نظر جهت حذف از جدول را به وسیله یک شی query object،تعیین نمایید.
مثال عملی:در کد مثال زیر،از برنامه Node.js درخواست کرده ایم تا اطلاعات کلیه رکوردهایی که مقدار فیلد address آنها با حرف O شروع می شود را از جدول “Customers” حذف نماید:
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 myquery = { address: /^O/ }; dbo.collection("customers").deleteMany(myquery, function(err, obj) { if (err) throw err; console.log(obj.result.n + " document(s) deleted"); db.close(); }); });
کد فوق را در فایل "demo_delete_many.js" ذخیره کرده و با دستور زیر،آن را اجرا نمایید:
C:\Users\Your Name>node demo_delete_many.js
برنامه پس از حذف رکوردهای مشابه query مورد نظر،تعداد آن ها را در پیامی به صورت زیر نشان می دهد:
2 document(s) deleted
آموزش کار با شی Result Object در MongoDB :
متد deleteMany() ،پس از اجرای دستورات خود،یک شی نتیجه یا Result Object برمی گرداند.این شی حاوی اطلاعاتی است که نشان می دهد عملیات حذف رکوردها،چه تاثیری بر روی پایگاه داده داشته است.
بیشتر اطلاعاتی که متد deleteMany در شی Result Object بر می گرداند،خیلی کاربردی نیستند.اما این شی حاوی یک شی به نام result است که به ما می گوید آیا عملیات حذف با موفقیت انجام شده و یا خیر و اینکه چند رکورد،تحت تاثیر قرار گرفته اند.
شی result حاوی اطلاعاتی شبیه قطعه کد زیر است:
{ n: 2, ok: 1 }
از شی result می توانید برای نمایش تعداد رکوردهای حذف شده به صورت زیر،استفاده نمایید:
console.log(obj.result.n);
که خروجی آن به صورت زیر خواهد بود:
2