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

Chuyển chuỗi có dấu phẩy thành double trong MongoDB

Chuyển đổi kiểu dữ liệu chuỗi số sang double với $convert

Sử dụng aggregation pipeline với $convert, $reduce, $split, $concat để loại bỏ dấu phẩy và chuyển sang double.

Dữ liệu chuỗi có dấu phẩy

> db.demo335.insertOne({"Value": "45,67,78.0"});
> db.demo335.insertOne({"Value": "17664,76,534.0"});
> db.demo335.insertOne({"Value": "8899,322,135,875.50"});
> db.demo335.insertOne({"Value": "1,533.07"});

Pipeline chuyển đổi

> db.demo335.aggregate([
    {
        $project: {
            data: {
                $convert: {
                    input: {
                        $reduce: {
                            input: { $split: ['$Value', ','] },
                            initialValue: '',
                            in: { $concat: ['$$value', '$$this'] }
                        }
                    },
                    to: 'double',
                    onError: 0
                }
            }
        }
    }
]);

Kết quả

{ "_id": ..., "data": 456778 }
{ "_id": ..., "data": 1766476534 }
{ "_id": ..., "data": 8899322135875.5 }
{ "_id": ..., "data": 1533.07 }

Luồng xử lý: split bằng ',' → reduce concat các phần → convert sang double. onError: 0 xử lý giá trị không chuyển được.