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

Hapus dokumen bersarang dengan kondisi di MongoDB

Masalahnya adalah array subdocuments bukan kumpulan, Anda tidak dapat mengurutkan atau melakukan sesuatu yang lain di atasnya. Tetapi jika Anda memiliki akses ke antarmuka bahasa apa pun seperti JavaScript atau yang lain, itu mungkin. Anda hanya perlu mengekstrak daftar subdokumen, mengurutkannya berdasarkan tinggi, ingat yang pertama dan kemudian jalankan perintah untuk menariknya dari array berdasarkan nama dan tingginya. Hal ini dapat dilakukan misalnya menggunakan kode JavaScript ini langsung di MongoDB cangkang:

var min = 0; var name = "";
db.animals.find({ query:{"_id" : 0} }).forEach(
function(record){
    var sets = record.pets; 
    min = sets[0].height;
    sets.forEach(function(set){
        if(set.height <= min) 
            {min=set.height;
            name=set.name;}
            });
    print(min);
    print(name);    
    query = {"_id": 0}
    update = { "$pull" : { "pets" : { "name" : name } } };
    db.animals.update(query, update);
    })

Saya menduga solusinya bukan yang paling elegan tetapi tetap berhasil.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cara membuat pagination dengan luwak

  2. Memperbarui catatan mendalam di MongoDb

  3. Tidak bisa mendapatkan allowDiskUse:True untuk bekerja dengan pymongo

  4. Cara Mengotomatiskan dan Mengelola MongoDB Dengan ClusterControl

  5. Apakah saya perlu menutup koneksi secara eksplisit?