Я использовал aggregated
с $facet
для фильтрации пользователей списка из коллекций с необработанным запросом от jenssegers / laravel -mongodb. Но данные, которые я получил, имеют формат:
{
"list": [
{
"_id": 1,
"activated": 1,
"status": 1,
"created_at": {
"$date": {
"$numberLong": "1591626995341"
}
},
"updated_at": {
"$date": {
"$numberLong": "1591627007461"
}
},
"register_at": {
"$date": {
"$numberLong": "1591627007376"
}
}
},
....
],
"option":{
"total":12,
"offset":0,
"limit":10
}
Я хочу получить только формат даты created_at:"Y-m-d H:i:s"
PS: Я могу использовать $addFields
и $dateToString
как показано ниже
$aggregate = [
$matched,
['$sort' => ['_id' => 1]],
[
'$facet' => [
'list' => [
['$skip' => $offset],
['$limit' => $limit],
[
'$addFields' => [
'register_at' => [
'$dateToString' => [
'date' => '$register_at',
'format' => '%Y-%m-%d %H:%M:%S'
]
],
'created_at' => [
'$dateToString' => [
'date' => '$created_at',
'format' => '%Y-%m-%d %H:%M:%S'
]
],
'updated_at' => [
'$dateToString' => [
'date' => '$updated_at',
'format' => '%Y-%m-%d %H:%M:%S'
]
]
]
],
['$project' => ['password' => 0]]
],
'option' => [
['$count' => 'total'],
[
'$addFields' => [
'offset' => $offset,
'limit' => $limit
]
]
]
]
]
];
для переформатирования структуры json ответа, но не моего желания.