Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Lấy số document đã cập nhật trong MongoDB?

Để lấy số lượng document đã được cập nhật trong MongoDB, bạn sử dụng db.runCommand("getlasterror") ngay sau thao tác update. Kết quả trả về chứa trường n cho biết số document đã sửa đổi.

Tạo dữ liệu mẫu

> 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") }

Hiển thị tất cả:

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

Cập nhật và lấy số document đã sửa

Cập nhật tất cả document (multi: true):

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

Ngay sau đó chạy getlasterror:

> db.runCommand( "getlasterror" );

Trường "n" : 5 cho thấy 5 document đã được cập nhật.

Kiểm tra dữ liệu:

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

Lưu ý: Trong driver mới (MongoDB 3.2+), update() trả về object chứa nModified trực tiếp. getlasterror là cách truyền thống trong shell.