Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

วิธีดูจำนวนเอกสารที่อัปเดตใน MongoDB ด้วย getlasterror

เพื่อดูจำนวนเอกสารที่ถูกอัปเดต ใช้ db.runCommand("getlasterror") หลังจากรันคำสั่ง update

ตัวอย่างการใช้งาน

สร้างคอลเลกชันพร้อมข้อมูล:

> db.getNumberOfUpdatedDocumentsDemo.insertOne({"StudentName":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca28c1d6304881c5ce84bad") }
> db.getNumberOfUpdatedDocumentsDemo.insertOne({"StudentName":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca28c226304881c5ce84bae") }
> db.getNumberOfUpdatedDocumentsDemo.insertOne({"StudentName":"Robert"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca28c276304881c5ce84baf") }
> db.getNumberOfUpdatedDocumentsDemo.insertOne({"StudentName":"Ramit"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca28c366304881c5ce84bb0") }
> db.getNumberOfUpdatedDocumentsDemo.insertOne({"StudentName":"Adam"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca28c436304881c5ce84bb1") }

แสดงเอกสารทั้งหมด:

> db.getNumberOfUpdatedDocumentsDemo.find().pretty();

ผลลัพธ์:

อัปเดตเอกสารทั้งหมด (multi: true)

> db.getNumberOfUpdatedDocumentsDemo.update({}, {$set : {"StudentName" : "Carol"}}, true, true);
WriteResult({ "nMatched" : 5, "nUpserted" : 0, "nModified" : 5 })

ตรวจสอบจำนวนที่อัปเดตด้วย getlasterror

> db.runCommand( "getlasterror" );

ผลลัพธ์ (n = 5 หมายถึง 5 เอกสารถูกอัปเดต):

แสดงข้อมูลหลังอัปเดต:

> db.getNumberOfUpdatedDocumentsDemo.find().pretty();

ผลลัพธ์ (ทุกคนกลายเป็น Carol):

หมายเหตุ: ใน MongoDB เวอร์ชันใหม่ แนะนำให้ใช้ updateMany() ซึ่งคืนค่าผลลัพธ์โดยตรง รวมถึง modifiedCount ไม่ต้องใช้ getlasterror แล้ว