MongoDB tidak menyediakan cara untuk melakukan ini di luar kotak, tetapi ada solusi untuk memperbarui dokumen Anda dan menggunakan $sort
perbarui operator untuk mengurutkan larik Anda.
db.collection.update_many({}, {"$push": {"topics": {"$each": [], "$sort": {"weight": -1}}}})
Anda masih dapat menggunakan .aggregate()
caranya seperti ini:
db.collection.aggregate([
{"$unwind": "$topics"},
{"$sort": {"_id": 1, "topics.weight": -1}},
{"$group": {"_id": "$_id", "topics": {"$push": "$topics"}}}
])
Tapi ini kurang efisien jika yang Anda inginkan hanyalah mengurutkan array Anda, dan Anda seharusnya tidak melakukannya.
Anda selalu dapat melakukan sisi klien ini menggunakan .sort
atau sorted
fungsi.