किसी प्रकार की पंक्ति संख्या को mongodb समुच्चय कमांड/पाइपलाइन में जोड़ें



mongodb-query aggregation-framework (1)

बड़े प्रश्नों में प्रदर्शन के बारे में निश्चित नहीं है, लेकिन यह कम से कम एक विकल्प है।

आप ग्रुपिंग / पुश करके अपने परिणामों को एक सरणी में जोड़ सकते हैं और फिर इस तरह से शामिल करें।

[
  {$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
  }}
]

अब, यदि आपके डेटाबेस में रिकॉर्ड की एक बड़ी मात्रा है, और आप पृष्ठांकित करने का इरादा रखते हैं, तो आप $ स्किप स्टेज का उपयोग कर सकते हैं और फिर $ 10 या 20 की सीमा या जो भी आप प्रति पृष्ठ प्रदर्शित करना चाहते हैं, और बस $ स्किप से संख्या जोड़ सकते हैं। आपके पंक्तिबद्ध मंच पर और आपको अपने सभी परिणामों को आगे बढ़ाने के लिए वास्तविक स्थिति प्राप्त करनी होगी।

विचार एक प्रकार की पंक्ति संख्या को मोंगोडब एग्रीगेट कमांड / पाइपलाइन पर वापस करना है। आरडीबीएम में हमने जो लिखा है, उसके समान।

यह एक अद्वितीय संख्या होनी चाहिए, महत्वपूर्ण नहीं अगर यह एक पंक्ति / संख्या से बिल्कुल मेल खाती है।

एक क्वेरी के लिए जैसे:

  [   { $match: { "author" : { $ne: 1 } }}  , { $limit: 1000000 } ]

वापसी :

{ "rownum" : 0, "title" : "The Banquet", "author" : "Dante", "copies" : 2 }
{ "rownum" : 1, "title" : "Divine Comedy", "author" : "Dante", "copies" : 1 }
{ "rownum" : 2, "title" : "Eclogues", "author" : "Dante", "copies" : 2 }
{ "rownum" : 3, "title" : "The Odyssey", "author" : "Homer", "copies" : 10 }
{ "rownum" : 4, "title" : "Iliad", "author" : "Homer", "copies" : 10 }

क्या यह उपद्रव मोंगोडब में उत्पन्न करना संभव है?





aggregation-framework