У меня нет большого опыта работы с mon goose, но я могу написать запрос оболочки для разбивки на массивы. Таким образом, вы можете интегрировать его в mon goose.
Причина, по которой вы не можете разбить на страницы, заключается в том, что вы применяете skip
и limit
после group
, что дает вам массив в качестве вывода. Таким образом, чтобы применить нумерацию страниц к самому массиву, вам нужно использовать $slice
для дополнительной информации здесь
db.collection.aggregate([
{
$match:{
"_id":ObjectId("xyz")
}
},
{
$unwind:"$reviews"
},
{
$group:{
"_id":"$_id",
"reviews":{
$push:"$reviews"
}
}
},
{
$sort:{
sort_value:1
}
},
{
$project:{
"reviews":{
$slice:[
"$reviews",
skip_value,
limit_value
]
}
}
}
]).pretty()
Надеюсь, это поможет:)