MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

एक प्रतिक्रियात्मक तरीके से एक मोंगोडब संग्रह से सभी दस्तावेजों को क्वेरी करने का सबसे अच्छा तरीका w/out बाढ़ RAM

मैं मोंगोडब का विशेषज्ञ नहीं हूं, लेकिन मैंने जो उदाहरण देखे हैं, उनके आधार पर यह एक ऐसा पैटर्न है जिसे मैं आजमाऊंगा।

मैंने डेटा के अलावा अन्य घटनाओं को छोड़ दिया है, क्योंकि थ्रॉटलिंग एक मुख्य चिंता है।

var cursor = db.collection('mycollection').find({});  

const cursorNext = new Rx.BehaviourSubject('next');  // signal first batch then wait
const nextBatch = () => {
  if(cursor.hasNext()) {
    cursorNext.next('next');
  }
});

cursorNext
  .switchMap(() =>                            // wait for cursorNext to signal
     Rx.Observable.fromPromise(cursor.next())  // get a single doc
       .repeat()                               // get another
       .takeWhile(() => cursor.hasNext() )     // stop taking if out of data
       .take(batchSize)                        // until full batch
       .toArray()                              // combine into a single emit
  )
  .map(docsBatch => {
    // do something with the batch
    // return docsBatch or modified doscBatch
  })
  ... // other operators?
  .subscribe(x => {
    ...
    nextBatch();
  });         

मैं बिना मोंगोडब के इस आरएक्स प्रवाह का एक साथ परीक्षण करने की कोशिश कर रहा हूं, इस बीच यह आपको कुछ विचार दे सकता है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में एक ही फ़ील्ड के लिए एकाधिक दस्तावेज़ों के लिए शर्त लागू करना

  2. Mongodb सबएरे से विशिष्ट तत्व को अपडेट करता है

  3. MongoDB-Node.JS मूल ड्राइव का उपयोग करके क्वेरी के माध्यम से इसे MongoDB से प्राप्त करते समय/उपनाम फ़ील्ड का नाम कैसे बदलें?

  4. फ़िल्टर के साथ Mongo दिनांक सीमा अनुक्रमणिका

  5. प्रतिकृति सेट के लिए नेवला कनेक्शन