Problemet er, at rækken af underdokumenter ikke er en samling, du kan ikke sortere eller gøre noget andet på det. Men hvis du har adgang til en hvilken som helst sproggrænseflade som JavaScript ellers er det muligt. Du skal bare udtrække en liste over underdokumenter, sortere dem efter højde, huske det første og derefter køre kommandoen for at trække det fra arrayet baseret på dets navn og højde. Det kan for eksempel gøres ved at bruge denne JavaScript-kode direkte i MongoDB skal:
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);
})
Jeg formoder, at løsningen ikke er den mest elegante, men den virker alligevel.