MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Upsert massal di MongoDB menggunakan luwak

Tidak dalam "luwak" secara khusus, atau setidaknya belum pada saat penulisan. Shell MongoDB pada rilis 2.6 sebenarnya menggunakan "API operasi massal" "di bawah tenda" seperti halnya untuk semua metode pembantu umum. Dalam implementasinya, ia mencoba melakukan ini terlebih dahulu, dan jika server versi yang lebih lama terdeteksi maka ada "fallback" pada implementasi lawas.

Semua metode luwak "saat ini" menggunakan implementasi "warisan" atau respons kekhawatiran penulisan dan metode warisan dasar. Tapi ada .collection pengakses dari model luwak apa pun yang pada dasarnya mengakses "objek koleksi" dari "pengandar asli simpul" yang mendasari di mana luwak diimplementasikan sendiri:

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

 mongoose.connect('mongodb://localhost/test');

 var sampleSchema  = new Schema({},{ "strict": false });

 var Sample = mongoose.model( "Sample", sampleSchema, "sample" );

 mongoose.connection.on("open", function(err,conn) { 

    var bulk = Sample.collection.initializeOrderedBulkOp();
    var counter = 0;

    // representing a long loop
    for ( var x = 0; x < 100000; x++ ) {

        bulk.find(/* some search */).upsert().updateOne(
            /* update conditions */
        });
        counter++;

        if ( counter % 1000 == 0 )
            bulk.execute(function(err,result) {             
                bulk = Sample.collection.initializeOrderedBulkOp();
            });
    }

    if ( counter % 1000 != 0 )
        bulk.execute(function(err,result) {
           // maybe do something with result
        });

 });

Tangkapan utama di sana adalah bahwa "metode luwak" sebenarnya menyadari bahwa koneksi mungkin belum benar-benar dibuat dan "mengantre" sampai ini selesai. Driver asli yang Anda "gali" tidak membuat perbedaan ini.

Jadi, Anda benar-benar harus menyadari bahwa koneksi dibuat dalam beberapa cara atau bentuk. Tetapi Anda dapat menggunakan metode driver asli selama Anda berhati-hati dengan apa yang Anda lakukan.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Ekspor Koleksi MongoDB ke File JSON

  2. Rentang kueri untuk pagination MongoDB

  3. Pesanan dokumen pengembalian Mongodb find

  4. Pencarian Teks MongoDB DAN beberapa kata pencarian

  5. kueri grup mongo cara menyimpan bidang