Để lấy giá trị tuyệt đối (absolute value) trong MongoDB, bạn sử dụng toán tử $abs trong aggregation pipeline.
Tạo dữ liệu mẫu
> db.absoluteValueDemo.insert({"Value":98});
WriteResult({ "nInserted" : 1 })
> db.absoluteValueDemo.insert({"Value":-100});
WriteResult({ "nInserted" : 1 })
> db.absoluteValueDemo.insert({"Value":0});
WriteResult({ "nInserted" : 1 })
> db.absoluteValueDemo.insert({"Value":-9999990});
WriteResult({ "nInserted" : 1 })
Hiển thị tất cả document:
> db.absoluteValueDemo.find().pretty();
{ "_id" : ObjectId("5ca271f56304881c5ce84b9a"), "Value" : 98 }
{ "_id" : ObjectId("5ca271fa6304881c5ce84b9b"), "Value" : -100 }
{ "_id" : ObjectId("5ca271fe6304881c5ce84b9c"), "Value" : 0 }
{ "_id" : ObjectId("5ca2720f6304881c5ce84b9d"), "Value" : -9999990 }
Sử dụng $abs trong Aggregation
> db.absoluteValueDemo.aggregate({ $project: { AbsoluteValue: { $abs: '$Value' } }});
Kết quả:
Lưu ý: Toán tử
$abschuyển đổi số âm thành dương, số dương và 0 giữ nguyên. Đây là một trong nhiều toán tử số học có sẵn trong aggregation framework của MongoDB (cùng với $add, $subtract, $multiply, $divide, v.v.).