MongoDB tillhandahåller inget sätt att göra detta direkt, men det finns en lösning som är att uppdatera dina dokument och använda $sort
uppdatera operatorn för att sortera din array.
db.collection.update_many({}, {"$push": {"topics": {"$each": [], "$sort": {"weight": -1}}}})
Du kan fortfarande använda .aggregate()
metod så här:
db.collection.aggregate([
{"$unwind": "$topics"},
{"$sort": {"_id": 1, "topics.weight": -1}},
{"$group": {"_id": "$_id", "topics": {"$push": "$topics"}}}
])
Men det här är mindre effektivt om allt du vill är att sortera din array, och du borde definitivt inte göra det.
Du kan alltid göra den här klientsidan med .sort
eller sorted
funktion.