2010-01-13 8 views
17

के साथ पेजिनेशन मैं लॉगिंग डेटा स्टोर करने के लिए मोंगोडीबी और आरओआर का उपयोग कर रहा हूं। मैं डेटा खींच रहा हूं और परिणामों को पेज पर देख रहा हूं। क्या किसी ने मोंगोडीबी के साथ पेजिंग किया है या ऑनलाइन किसी भी संसाधन के बारे में पता है जो मुझे शुरू करने में मदद कर सकता है?मोंगोडीबी

चीयर्स

EEF

उत्तर

37

MongoDB में पृष्ठांकन limit() और skip() का एक संयोजन का उपयोग करके पूरा किया जा सकता है।

उदाहरण के लिए, मान लें कि हमारे पास हमारे सक्रिय डेटाबेस में उपयोगकर्ताओं को संग्रहित संग्रह है।

>> db.users.find().limit(3) 

यह हमारे लिए पहले तीन उपयोगकर्ता दस्तावेज़ों की एक सूची पुनर्प्राप्त करता है। ध्यान दें, यह अनिवार्य रूप से लेखन के रूप में ही है:

>> db.users.find().skip(0).limit(3) 

अगले तीन के लिए, हम यह कर सकते हैं:

>> db.users.find().skip(3).limit(3) 

यह पहली तीन उपयोगकर्ता अधिक रिकॉर्ड को छोड़ देता है, और हमें अगले तीन देता है। यदि आपके डेटाबेस में केवल एक और उपयोगकर्ता है, तो चिंता न करें; MongoDB केवल मौजूद डेटा को वापस करने के लिए पर्याप्त स्मार्ट है, और क्रैश नहीं होगा।

इसे सामान्यीकृत किया जा सकता है, और यह लगभग एक वेब अनुप्रयोग में आप जो करेंगे, उसके बराबर होगा। मान लिया जाये कि हम चर PAGE_SIZE जो 3 के लिए सेट है कहा जाता है, और एक मनमाना PAGE_NUMBER:

>> db.users.find().skip(PAGE_SIZE * (PAGE_NUMBER - 1)).limit(PAGE_SIZE) 

मैं कैसे रूबी ऑन रेल्स में इस विधि रोजगार के रूप में सीधे बात नहीं कर सकते, लेकिन मुझे लगता है रूबी MongoDB पुस्तकालय इन तरीकों को उजागर करता है ।

+1

धन्यवाद, ऐसा लगता है कि नौकरी करना प्रतीत होता है लेकिन अब रूबी शिकायत कर रहा है स्किप पैरामीटर int, sigh, इसके लिए धन्यवाद होना चाहिए :) – RailsSon

+2

मैंने पढ़ा है 'छोड़ें'), क्योंकि श्रेणियां अंकन के लिए बेहतर काम करती हैं। –

+0

क्या छोड़ने के लिए एक बेहतर विकल्प है() @tq? – film42