我临时工在这种格式的JSON一些飞行数据:蒙戈使用聚合
{"_id":{"$oid":"587d12881603f94800054dc5"},"flight_date":{"$date":"2015-08-23T00:00:00.000Z"},"flight_number":863,"destination_city":" Baltimore, MD","delay_in_minutes":0.0,"cancelled":0.0}
我试图做的是找到的月份,取消的航班比例最高。我所编码的代码按月份将取消的航班分组,并将每个航班的年份除以总航班数。我想要做的是将每个月的取消航班除以该月的总航班(取消和未取消),所以我得到适当的比例。
var size = db.flights.count();
db.flights.aggregate(
[
{
$project: {
cancelled_flights: { $eq: [ "$cancelled", 1 ] },
month: { $substr: [ "$flight_date", 5, 2 ] },
}
},
{
$match: {"cancelled_flights" : false}
},
{
$group: {
_id : "$month",
total : {$sum : 1 },
}
},
{
$project: {
Total_Cancelled : "$total",
Ratio : { $divide: [ "$total", size] }
}
},
{$sort: {"Ratio":-1}},
{ $limit : 1 }
])
我只是在学习mongo,所以请指出我的错误,我会解决它们。
请解释为什么它被downvoted。 – Veeram
我不是downvoter,但你以前的版本有“在这里回答”。有一个链接不是堆栈溢出标准的好答案。我不确定你为什么选择这样做,但好的答案包含答案中的所有信息,并且没有链接。我特别困惑,为什么你选择链接到你的答案的早期版本... – Chris
@克里斯感谢克里斯在这里伸出援手。我没有找到任何其他方式,因为欧普想要建议而不回答,所以这是我隐藏答案的方式。所以他可以在尝试了这些建议后点击它。 – Veeram