Проблемът е, че масивът от поддокументи не е колекция, не можете да сортирате или да направите нещо друго върху него. Но ако имате достъп до който и да е езиков интерфейс като JavaScript или друго, това е възможно. Просто трябва да извлечете списък с поддокументи, да ги сортирате по височина, да запомните първия и след това да изпълните командата, за да го изтеглите от масива въз основа на името и височината му. Може да се направи например с помощта на този JavaScript код точно в MongoDB обвивка:
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);
})
Подозирам, че решението не е най-елегантното, но въпреки това работи.