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

Chuyển đổi chuỗi sang số trong MongoDB

Sử dụng parseInt() hoặc parseFloat() trong JavaScript kết hợp forEach() để chuyển đổi trường chuỗi sang số.

Ví dụ minh họa

Tạo collection convertStringToNumberDemo với EmployeeId là chuỗi:

> db.convertStringToNumberDemo.insertOne({"MaNhanVien": "101", "TenNhanVien": "Larry"});
> db.convertStringToNumberDemo.insertOne({"MaNhanVien": "1120", "TenNhanVien": "Mike"});
> db.convertStringToNumberDemo.insertOne({"MaNhanVien": "3210", "TenNhanVien": "Sam"});

Chuyển đổi

> db.convertStringToNumberDemo.find().forEach(function(doc) {
  db.convertStringToNumberDemo.update(
    {_id: doc._id},
    {$set: {"MaNhanVien": parseInt(doc.MaNhanVien)}}
  );
});

Kết quả:

{ "MaNhanVien": 101, "TenNhanVien": "Larry" }
{ "MaNhanVien": 1120, "TenNhanVien": "Mike" }
{ "MaNhanVien": 3210, "TenNhanVien": "Sam" }

Cách hiện đại (MongoDB 4.2+): Dùng updateMany() với aggregation pipeline:

db.convertStringToNumberDemo.updateMany(
  {},
  [{$set: {"MaNhanVien": {$toInt: "$MaNhanVien"}}}]
)

$toInt, $toLong, $toDouble, $toDecimal chuyển đổi an toàn, trả về null nếu không chuyển được (thay vì lỗi).