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

Bagaimana cara mengubah semua elemen array dalam dokumen mongodb ke nilai tertentu?

Cara terbaik untuk melakukannya adalah mencocokkan elemen array dan memperbarui satu per satu dengan posisi $ operator menggunakan Bulk() API. Anda benar-benar tidak boleh meledakkan qty . Anda larik.

var bulk = db.mycollection.initializeOrderedBulkOp(),   
    count = 0;

db.mycollection.find({ "code" : "efg" }).forEach(function(doc){ 
    var qty = doc["qty"]; 
    for (var idx = 0; idx < qty.length; idx++){ 
        bulk.find({ 
            "_id": doc._id, 
            "qty": { "$elemMatch": { "num": qty[idx]["num"]}}
        }).update({ "$set": { "qty.$.num": 0 }})
    }     
    count++;  
    if (count % 200 == 0) { 
        // Execute per 200 operations and re-init.
        bulk.execute(); 
        bulk = db.mycollection.initializeOrderedBulkOp(); 
    } 
})

// Clean up queues
if (count % 200 != 0)
    bulk.execute(); 



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Enam Komponen Penting dari Tata Kelola Data yang Berhasil

  2. Mengambil HTML dari MongoDB untuk digunakan di Template

  3. cara menanyakan objek anak di mongodb

  4. ClusterControl 1.5 Dokumentasi - Yang Baru

  5. Bagaimana cara MongoDB memesan dokumen mereka dalam satu koleksi?