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

Chuyển đổi chuỗi số thành số trong MongoDB

Để chuyển chuỗi số thành kiểu số, sử dụng parseInt() trong mongo shell kết hợp forEach() và save(). Tạo collection:

> db.demo208.insertOne( { "value":"50" } );
{ "acknowledged" : true, "insertedId" : ObjectId("5e3d92d803d395bdc21346f6") }
> db.demo208.insertOne( { "value":"2350" } );
{ "acknowledged" : true, "insertedId" : ObjectId("5e3d92dd03d395bdc21346f7") }

Hiển thị - value là string:

> db.demo208.find();

Chuyển đổi và lưu lại:

> db.demo208.find().forEach( function (doc) {
   doc.value = parseInt(doc.value);
   db.demo208.save(doc);
});

Kết quả sau chuyển đổi - value thành number:

> db.demo208.find();

Lưu ý: Cách này chạy ở client-side (mongo shell). Từ MongoDB 4.0+, có thể dùng $toInt trong aggregation pipeline để chuyển đổi server-side mà không cần cập nhật dữ liệu gốc. Ví dụ: {$project: {value: {$toInt: "$value"}}}.