Điều này không thể xảy ra với MongoDB 3.4. Tính năng này đã được yêu cầu nhưng vẫn chưa được triển khai:
Cần cơ chế chuyển đổi kiểu để chuyển đổi giữa chuỗi và số
Vì vậy, cách duy nhất để giải quyết vấn đề của bạn là thực hiện thủ công tính tổng totalAmount trong javascript ...
Chỉnh sửa
Điều này hiện có thể thực hiện được trong MongoDB 4.0 toán tử được giới thiệu để chuyển đổi từ kiểu này sang kiểu khác, ví dụ $toDouble
vì vậy truy vấn sẽ là:
db.collection.aggregate([
{
"$group": {
"_id": null,
"totalAmount": {
"$sum": {
"$toDouble": "$orderTotal.amount"
}
},
"count": {
"$sum": 1
}
}
}
])
bạn có thể thử nó tại đây: mongoplayground.net/p/4zJTPU912Es