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.