Het probleem is dat de reeks subdocumenten geen verzameling is, je kunt er niet op sorteren of er iets anders op doen. Maar als je toegang hebt tot een taalinterface zoals JavaScript of anders is het mogelijk. U hoeft alleen een lijst met subdocumenten uit te pakken, ze op hoogte te sorteren, de eerste te onthouden en vervolgens de opdracht uit te voeren om deze uit de array te halen op basis van de naam en hoogte. Het kan bijvoorbeeld worden gedaan door deze JavaScript-code rechtstreeks in de MongoDB te gebruiken schaal:
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);
})
Ik vermoed dat de oplossing niet de meest elegante is, maar het werkt in ieder geval.