O MongoDB não fornece uma maneira de fazer isso pronto para uso, mas há uma solução alternativa que é atualizar seus documentos e usar o
$sort
operador de atualização para classificar sua matriz. db.collection.update_many({}, {"$push": {"topics": {"$each": [], "$sort": {"weight": -1}}}})
Você ainda pode usar o
.aggregate()
método assim:db.collection.aggregate([
{"$unwind": "$topics"},
{"$sort": {"_id": 1, "topics.weight": -1}},
{"$group": {"_id": "$_id", "topics": {"$push": "$topics"}}}
])
Mas isso é menos eficiente se tudo o que você deseja é classificar sua matriz, e você definitivamente não deve fazer isso.
Você sempre pode fazer este lado do cliente usando o
.sort
ou sorted
função.