MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Chèn hàng loạt MongoDB và NodeJs

Để sử dụng API hoạt động hàng loạt cơ bản trong Mongoose, bạn có thể truy cập nó qua .collection thuộc tính từ mô hình mongoose. Trước khi sử dụng API, hãy đợi mongoose kết nối thành công với db vì Mongoose không thực sự hỗ trợ "initializeOrderedBulkOp ()" hiện tại vì nó không hoạt động với hệ thống đệm nội bộ của nó. Vì vậy, một cái gì đó giống như triển khai sau (không được thử nghiệm) sẽ cung cấp cho bạn ý tưởng:

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. MongoDB trong Go với mgo, các toán tử với bson.M / bson.D luôn gặp lỗi cú pháp

  2. Cập nhật tài liệu nhúng Mongoose

  3. Tìm một hoặc tạo bằng Mongoose

  4. Tôi có thể sử dụng MongoDB thay thế cho CoreData trên iOS không?

  5. Truyền kết quả MongoDB sang phản hồi Express