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

Mongodb mengonversi banyak objek menjadi array, di tempat, secara permanen

Anda dapat mencoba pipa agregasi di bawah ini di 3.4 versi.

Agregasi di bawah ini mengubah stores menyematkan dokumen ke dalam larik pasangan nilai kunci menggunakan $objectToArray diikuti oleh $map untuk menampilkan array yang diubah dengan bidang baru sambil mempertahankan semua bidang yang ada.

Pembaruan massal untuk menulis struktur toko baru.

var bulk = db.getCollection(col).initializeUnorderedBulkOp();
var count = 0;
var batch = 1;

db.getCollection(col).aggregate([
{"$match":{"store_affiliation.stores":{"$ne":{"$type":4}}}},
{"$addFields":{
  "stores":{
      "$map":{
        "input":{"$objectToArray": "$store_affiliation.stores"}, 
        "in":{
           "store_code":"$$this.k", 
           "role":"$$this.v.role", 
           "startdate":"$$this.v.startdate", 
           "enddate":"$$this.v.enddate", 
           "permissions":"$$this.v.permissions"
         }
      }
    }
}}]).forEach(function(doc){ 
    var _id = doc._id; 
    var stores = doc.stores; 
    bulk.find({ "_id" : _id }).updateOne(
      { $set: {"store_affiliation.stores" : stores} }
   ); 
    count++;  
    if (count == batch) { 
        bulk.execute(); 
        bulk = db.getCollection(col).initializeUnorderedBulkOp(); 
        count = 0;
    } 
});

if (count > 0) { 
    bulk.execute(); 
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB menemukan objek bersarang yang memenuhi kriteria

  2. Pengaturan buruh pelabuhan Mongo rusak setelah reboot (pengontrol unifi pada raspberry pi)

  3. sailsjs menggunakan mongodb tanpa ORM

  4. Bagaimana cara mengizinkan data JSON bentuk bebas dalam dokumen Mongoose?

  5. MongoError:topologi dihancurkan saat digunakan dengan api NextJs