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

Cách cập nhật tất cả phần tử mảng với tiền tố chuỗi trong MongoDB

Để cập nhật tất cả phần tử trong mảng bằng cách thêm tiền tố chuỗi, sử dụng phương thức forEach(). Trước tiên, tạo collection với document:

> db.replaceAllElementsWithPrefixDemo.insertOne(
    {
      "StudentNames" : [
        "John",
        "Carol"
      ]
    }
); { "acknowledged" : true, "insertedId" : ObjectId("5cd91908b50a6c6dd317ad8e") }
> db.replaceAllElementsWithPrefixDemo.insertOne(
    {
      "StudentNames" : [
        "Sam"
      ]
    }
); { "acknowledged" : true, "insertedId" : ObjectId("5cd9191cb50a6c6dd317ad8f") }

Hiển thị tất cả document:

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

Kết quả:

{ "_id" : ObjectId("5cd91908b50a6c6dd317ad8e"), "StudentNames" : [ "John", "Carol" ] }
{ "_id" : ObjectId("5cd9191cb50a6c6dd317ad8f"), "StudentNames" : [ "Sam" ] }

Truy vấn thay thế tất cả phần tử mảng với tiền tố "MR.":

> db.replaceAllElementsWithPrefixDemo.find().forEach(function (myDocumentValue) {
    var prefixValue = myDocumentValue.StudentNames.map(function (myValue) {
      return "MR." + myValue;
    });
    db.replaceAllElementsWithPrefixDemo.update(
      {_id: myDocumentValue._id},
      {$set: {StudentNames: prefixValue}}
    );
  });

Kiểm tra lại document:

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

Kết quả sau khi cập nhật:

{ "_id" : ObjectId("5cd91908b50a6c6dd317ad8e"), "StudentNames" : [ "MR.John", "MR.Carol" ] }
{ "_id" : ObjectId("5cd9191cb50a6c6dd317ad8f"), "StudentNames" : [ "MR.Sam" ] }