Это один из наиболее часто задаваемых вопросов для получения разбитого на результат результата и общего количества результатов одновременно в одном запросе. Я не могу объяснить, как я себя чувствовал, когда я, наконец, достиг этого LOL.
$result = $collection->aggregate(array(
array('$match' => $document),
array('$group' => array('_id' => '$book_id', 'date' => array('$max' => '$book_viewed'), 'views' => array('$sum' => 1))),
array('$sort' => $sort),
// get total, AND preserve the results
array('$group' => array('_id' => null, 'total' => array( '$sum' => 1 ), 'results' => array( '$push' => '$$ROOT' ) ),
// apply limit and offset
array('$project' => array( 'total' => 1, 'results' => array( '$slice' => array( '$results', $skip, $length ) ) ) )
))
Результат будет выглядеть примерно так:
[
{
"_id": null,
"total": ...,
"results": [
{...},
{...},
{...},
]
}
]
Как отмечает @Maaz Syed Adeeb, это ошибка аксиоса. Я мог бы решить, используя следующий код, как предложено в: выпуск
axios.get(`${API_BASE}/EndPointThatUserAnotherToken`, getAxiosOptions(AuthStr))
.then(response => {
if (response.status === 200) {
commit(HIDE_LOADING)
resolve(response.data)
}
})
function getAxiosOptions (authToken) {
let opt = {
transformRequest: [function (data, headers) {
delete headers.common.Authorization
headers.Authorization = authToken
return data
}]
}
return opt
}