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

बैच सम्मिलित MongoDB और NodeJs

Mongoose में अंतर्निहित बल्क ऑपरेशन API का उपयोग करने के लिए, आपको इसे .collection के माध्यम से एक्सेस करने में सक्षम होना चाहिए नेवला मॉडल से संपत्ति। एपीआई का उपयोग करने से पहले, नेवले के डीबी से सफलतापूर्वक कनेक्ट होने की प्रतीक्षा करें क्योंकि मोंगोज़ वास्तव में "initializeOrderedBulkOp ()" का समर्थन नहीं करता है क्योंकि यह वर्तमान में अपने आंतरिक बफरिंग सिस्टम के साथ काम नहीं करता है। तो निम्नलिखित कार्यान्वयन (परीक्षण नहीं किया गया) जैसा कुछ आपको एक विचार देना चाहिए:

var mongoose = require('mongoose'),
    express = require('express'),
    Schema = mongoose.Schema;

mongoose.connect('mongodb://localhost/mydb');
var collection1Schema = new Schema({},{ strict: false, collection: 'Collection1' }),    
    MyModel = mongoose.model("MyModel", collection1Schema );

mongoose.set('debug', true);

mongoose.connection.on("open", function (err) {
    if (err) throw err;  
    var bulkUpdateOps = MyModel.collection.initializeUnorderedBulkOp(), 
        counter = 0;

    MyModel.find({}).lean().exec(function (err, docs) {
        if (err) throw err; 

        docs.forEach(function (doc){
            // computations
            var c1, c2, c3, c4, Field8;
            c1 = 10 + (0.03*doc.Field3);
            c2 = (doc.Field2 == 1) ? 1: 0.03;
            c3 = 7 - (doc.Field5.match(new RegExp(".", "g")) || []).length;
            c4 = (doc.Field2 == 1) ? Math.pow(doc.Field, -0.6) : 1;
            Field8 = c1*c2*c3*c4;

            counter++;

            bulkUpdateOps.find({ "_id": doc._id }).updateOne({
                "$set": { "Field8": Field8 }
            });

            if (counter % 500 == 0 ) {
                bulkUpdateOps.execute(function(err, result) {
                    if (err) throw err;  
                    bulkUpdateOps = MyModel.collection.initializeUnorderedBulkOp();
                    console.log(result);
                });
            } 

        });     

        if (counter % 500 != 0 ) {            
            bulkUpdateOps.execute(function(err, result) {
                if (err) throw err;  
                console.log(result);
            });         
        }       
    });

    var app = express();
    app.listen(3000, function () {
        console.log('now listening on http://localhost:3000');
    });
});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो और सी # के साथ डेटाटाइम मुद्दे

  2. कैसे कहें ... मैच जब फ़ील्ड एक संख्या है ... मोंगोडब में?

  3. डेलाइट सेविंग ऑफ़सेट के साथ तिथि के अनुसार कुल समूह

  4. डोकर कंटेनर से मोंगोडब होस्ट करने के लिए कनेक्ट करें

  5. NoSQL डेटाबेस की लड़ाई - MongoDB और Oracle NoSQL की तुलना करना