MongoDB neposkytuje způsob, jak to udělat hned po vybalení, ale existuje řešení, které spočívá v aktualizaci dokumentů a použití $sort
aktualizovat operátor pro seřazení vašeho pole.
db.collection.update_many({}, {"$push": {"topics": {"$each": [], "$sort": {"weight": -1}}}})
Stále můžete použít .aggregate()
metoda, jako je tato:
db.collection.aggregate([
{"$unwind": "$topics"},
{"$sort": {"_id": 1, "topics.weight": -1}},
{"$group": {"_id": "$_id", "topics": {"$push": "$topics"}}}
])
Ale to je méně efektivní, pokud vše, co chcete, je třídit pole, a to byste rozhodně neměli dělat.
Tuto stranu klienta můžete vždy provést pomocí .sort
nebo sorted
funkce.