如何使用purchased_at字段按周、日、年分组获取购买交易的price (本年度数据)之和
我的采集数据:
{
"_id": ObjectId("5a66d619042e9f3a070d6864"),
"name": "Deal1",
"price": "2000",
"status": true,
"purchased_at": ISODate("2018-01-23T06:28:41.0Z")
}
{
"_id": ObjectId("5a66d619042e9f3a070d6872"),
"name": "Deal2",
"price": "500",
"status": true,
"purchased_at": ISODate("2018-01-13T06:28:41.0Z")
}
{
"_id": ObjectId("5a66d619042e9f3a070d6880"),
"name": "Deal3",
"price": "1000",
"status": true,
"purchased_at": ISODate("2018-02-13T06:28:41.0Z")
}
{
"_id": ObjectId("5a66d619042e9f3a070d6880"),
"name": "Deal4",
"price": "1000",
"status": false,
"purchased_at": ISODate("2018-01-11T06:28:41.0Z")
}有人能帮帮忙吗?
发布于 2018-01-23 21:55:23
由于您使用的是非标准日期格式,因此需要使用filter()
$lastWeekSum = $collection->filter(function($i) {
Carbon::parse($i['purchased_at'])->gt(now()->subWeek());
})->sum('price');如果$i['purchased_at']返回一个对象,您应该在解析它之前将其转换为类似于2018-01-11T06:28:41.0Z的字符串。
https://stackoverflow.com/questions/48403372
复制相似问题