El problema es que la matriz de subdocumentos no es una colección, no se puede ordenar ni hacer nada más en ella. Pero si tiene acceso a cualquier interfaz de idioma como JavaScript o de lo contrario, es posible. Solo necesita extraer la lista de subdocumentos, ordenarlos por altura, recordar el primero y luego ejecutar el comando para extraerlo de la matriz en función de su nombre y altura. Se puede hacer, por ejemplo, usando este código JavaScript directamente en MongoDB. concha:
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);
})
Sospecho que la solución no es la más elegante pero de todos modos funciona.