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

Cara melakukan upser/pembaruan Massal dengan benar di MongoDB

Sintaks Anda di sini pada dasarnya benar, tetapi eksekusi umum Anda salah dan Anda seharusnya "memisahkan" tindakan "upsert" dari modifikasi lainnya. Jika tidak, ini akan "berbenturan" dan menghasilkan kesalahan saat "upsert" terjadi:

LineupPointsRecord.native(function (err,collection) {

    var bulk = collection.initializeOrderedBulkOp();

    // Match and update only. Do not attempt upsert
    bulk.find({
        "teamId": lineUpPointsGeneralRecord.teamId,
        "round": 0
    }).updateOne({
        "$inc": { "lfPoints": roundPoints },
        "$push": { "roundPoints": roundPoints }
    });

    // Attempt upsert with $setOnInsert only
    bulk.find({
        "teamId": lineUpPointsGeneralRecord.teamId,
        "round": 0
    }).upsert().updateOne({
        "$setOnInsert": lineUpPointsGeneralRecord
    });

    bulk.execute(function (err,updateResult) {
        sails.log.debug(err,updateResult);
    });
});

Pastikan sails-mongo Anda adalah versi terbaru yang mendukung operasi Massal dengan benar menjadi penyertaan driver asli node baru-baru ini. Yang terbaru mendukung driver v2, yang bagus untuk ini.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara menggunakan MongoDB $ne pada properti objek bersarang

  2. Mongodb Baca preferensi

  3. Mongodb Jelaskan untuk kerangka Agregasi

  4. Penyaringan populasi bersarang adalah MongoDB

  5. Bagaimana saya bisa menanyakan mongodb menggunakan mongoid/rails tanpa batas waktu?