Node.js MongoDBลบ


ลบเอกสาร

ในการลบบันทึกหรือเอกสารตามที่เรียกว่า MongoDB เราใช้ deleteOne()วิธีการ

พารามิเตอร์แรกของdeleteOne()เมธอดคืออ็อบเจกต์การสืบค้นที่กำหนดว่าเอกสารใดที่จะลบ

หมายเหตุ:ถ้าคิวรีพบเอกสารมากกว่าหนึ่งฉบับ เฉพาะรายการแรกเท่านั้นที่จะถูกลบ

ตัวอย่าง

ลบเอกสารที่มีที่อยู่ "ภูเขา 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" และเรียกใช้ไฟล์:

เรียกใช้ "demo_delete.js"

C:\Users\Your Name>node demo_delete.js

ซึ่งจะให้ผลลัพธ์นี้แก่คุณ:

1 document deleted


ลบจำนวนมาก

หากต้องการลบเอกสารมากกว่าหนึ่งฉบับ ให้ใช้ deleteMany()วิธีการ

พารามิเตอร์แรกของdeleteMany()เมธอดคืออ็อบเจ็กต์การสืบค้นที่กำหนดว่าเอกสารใดที่จะลบ

ตัวอย่าง

ลบเอกสารทั้งหมดโดยที่อยู่ขึ้นต้นด้วยตัวอักษร "O":

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" และเรียกใช้ไฟล์:

เรียกใช้ "demo_delete_many.js"

C:\Users\Your Name>node demo_delete_many.js

ซึ่งจะให้ผลลัพธ์นี้แก่คุณ:

2 document(s) deleted

วัตถุผลลัพธ์

deleteMany()เมธอดส่งคืนอ็อบเจ็กต์ที่มีข้อมูลเกี่ยวกับผลกระทบต่อฐานข้อมูล

ข้อมูลส่วนใหญ่ไม่สำคัญที่จะเข้าใจ แต่วัตถุหนึ่งชิ้นภายในวัตถุเรียกว่า "ผลลัพธ์" ซึ่งจะบอกเราว่าการดำเนินการเป็นไปด้วยดีหรือไม่ และเอกสารจำนวนเท่าใดที่ได้รับผลกระทบ

วัตถุผลลัพธ์มีลักษณะดังนี้:

{ n: 2, ok: 1 }

คุณสามารถใช้วัตถุนี้เพื่อส่งคืนจำนวนเอกสารที่ถูกลบ:

ตัวอย่าง

ส่งคืนจำนวนเอกสารที่ถูกลบ:

console.log(obj.result.n);

ซึ่งจะให้ผลลัพธ์นี้:

2