चूंकि v.3.4 (मुझे लगता है) MongoDB के पास अब 'पहलू' नामक एक नया एकत्रीकरण पाइपलाइन ऑपरेटर है, जो उनके अपने शब्दों में:
<ब्लॉकक्वॉट>इनपुट दस्तावेज़ों के एक ही सेट पर एक ही चरण में एकाधिक एकत्रीकरण पाइपलाइनों को संसाधित करता है। आउटपुट दस्तावेज़ में प्रत्येक उप-पाइपलाइन का अपना फ़ील्ड होता है जहाँ इसके परिणाम दस्तावेज़ों की एक सरणी के रूप में संग्रहीत किए जाते हैं।
इस विशेष मामले में, इसका मतलब है कि कोई ऐसा कुछ कर सकता है:
$result = $collection->aggregate([
{ ...execute queries, group, sort... },
{ ...execute queries, group, sort... },
{ ...execute queries, group, sort... },
{
$facet: {
paginatedResults: [{ $skip: skipPage }, { $limit: perPage }],
totalCount: [
{
$count: 'count'
}
]
}
}
]);
परिणाम होगा (पूर्व 100 कुल परिणामों के साथ):
[
{
"paginatedResults":[{...},{...},{...}, ...],
"totalCount":[{"count":100}]
}
]