MongoDB tilbyder ikke en måde at gøre dette på, men der er en løsning, som er at opdatere dine dokumenter og bruge $sort
opdater operatør for at sortere dit array.
db.collection.update_many({}, {"$push": {"topics": {"$each": [], "$sort": {"weight": -1}}}})
Du kan stadig bruge .aggregate()
metode som denne:
db.collection.aggregate([
{"$unwind": "$topics"},
{"$sort": {"_id": 1, "topics.weight": -1}},
{"$group": {"_id": "$_id", "topics": {"$push": "$topics"}}}
])
Men dette er mindre effektivt, hvis det eneste, du ønsker, er at sortere dit array, og det bør du bestemt ikke gøre.
Du kan altid gøre denne klientside ved at bruge .sort
eller sorted
funktion.