MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak zmienić wszystkie elementy tablicy w dokumencie mongodb na określoną wartość?

Najlepszym sposobem, aby to zrobić, jest dopasowanie elementu tablicy i aktualizowanie go indywidualnie za pomocą pozycyjnego $ operator za pomocą Bulk() API . Naprawdę nie powinieneś przesadzać z qty tablica.

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. Czy można wielokrotnie wysyłać zapytania do bazy danych MongoDB na żądanie?

  2. Jak uzyskać dostęp do MongoDB

  3. Jak policzyć liczbę dokumentów w kolekcji mongodb

  4. Czy MongoDB obsługuje typy zmiennoprzecinkowe?

  5. Popraw strukturę agregacji MongoDB