Tính giá trung bình Airbnb theo quốc gia trong collection listingsAndReviews:
• Chỉ xét listing có price tồn tại
• Gom nhóm theo address.country (giá trị nhóm nằm ở _id)
• Tính giá trung bình bằng $avg, đặt tên trường kết quả là avgPrice (giữ nguyên kiểu Decimal128 của price, không làm tròn hay đổi kiểu)
• Sắp xếp theo avgPrice giảm dần
Không cần lệnh use. Chương trình chỉ được in kết quả của câu aggregate này.
Collection listingsAndReviews (dữ liệu mẫu sample_airbnb.listingsAndReviews) đã được nạp sẵn.
Kết quả của câu aggregate theo định dạng mongosh: một mảng document dạng { _id: <quốc gia>, avgPrice: Decimal128(...) }, mỗi quốc gia một document. Ví dụ phần đầu:
[
{
_id: 'Hong Kong',
avgPrice: Decimal128('773.7866666666666666666666666666667')
},
...
]
Ví dụ:
Đầu vào:
sample_airbnb.listingsAndReviews
Đầu ra:
[
{
_id: 'Hong Kong',
avgPrice: Decimal128('773.7866666666666666666666666666667')
},
{
_id: 'Brazil',
avgPrice: Decimal128('525.3465346534653465346534653465347')
},
{
_id: 'China',
avgPrice: Decimal128('405.3684210526315789473684210526316')
},
{
_id: 'Turkey',
avgPrice: Decimal128('368.1467473524962178517397881996974')
},
{
_id: 'Australia',
avgPrice: Decimal128('197.8065573770491803278688524590164')
},
{
_id: 'United States',
avgPrice: Decimal128('185.7692307692307692307692307692308')
},
{
_id: 'Spain',
avgPrice: Decimal128('100.8262243285939968404423380726698')
},
{
_id: 'Canada',
avgPrice: Decimal128('100.1171032357473035439137134052388')
},
{
_id: 'Portugal',
avgPrice: Decimal128('69.18198198198198198198198198198198')
}
]Đang tải editor...