MongoDB не предоставя начин да направите това извън кутията, но има заобиколно решение, което е да актуализирате вашите документи и да използвате $sort
Оператор за актуализиране, за да сортирате вашия масив.
db.collection.update_many({}, {"$push": {"topics": {"$each": [], "$sort": {"weight": -1}}}})
Все още можете да използвате .aggregate()
метод като този:
db.collection.aggregate([
{"$unwind": "$topics"},
{"$sort": {"_id": 1, "topics.weight": -1}},
{"$group": {"_id": "$_id", "topics": {"$push": "$topics"}}}
])
Но това е по-малко ефективно, ако всичко, което искате, е да сортирате масива си и определено не трябва да правите това.
Винаги можете да направите тази клиентска страна, като използвате .sort
или sorted
функция.