बड़े प्रश्नों में प्रदर्शन के बारे में निश्चित नहीं है, लेकिन यह कम से कम एक विकल्प है।
आप अपने परिणामों को समूह/पुश करके एक सरणी में जोड़ सकते हैं और फिर includeArrayIndex
के साथ आराम कर सकते हैं इस तरह:
[
{$match: {author: {$ne: 1}}},
{$limit: 10000},
{$group: {
_id: 1,
book: {$push: {title: '$title', author: '$author', copies: '$copies'}}
}},
{$unwind: {path: '$book', includeArrayIndex: 'rownum'}},
{$project: {
author: '$book.author',
title: '$book.title',
copies: '$book.copies',
rownum: 1
}}
]
अब, यदि आपके डेटाबेस में बड़ी मात्रा में रिकॉर्ड हैं, और आप पेजिनेट करने का इरादा रखते हैं, तो आप $स्किप चरण का उपयोग कर सकते हैं और फिर $limit 10 या 20 या जो कुछ भी आप प्रति पेज प्रदर्शित करना चाहते हैं, और बस $स्किप से संख्या जोड़ें अपने राउनम के लिए चरण और आप अपने सभी परिणामों को गिनने के लिए धक्का दिए बिना वास्तविक स्थिति प्राप्त करेंगे।