MongoDB biedt geen manier om dit kant-en-klaar te doen, maar er is een oplossing om uw documenten bij te werken en de $sort
te gebruiken update operator om je array te sorteren.
db.collection.update_many({}, {"$push": {"topics": {"$each": [], "$sort": {"weight": -1}}}})
U kunt nog steeds de .aggregate()
. gebruiken methode als volgt:
db.collection.aggregate([
{"$unwind": "$topics"},
{"$sort": {"_id": 1, "topics.weight": -1}},
{"$group": {"_id": "$_id", "topics": {"$push": "$topics"}}}
])
Maar dit is minder efficiënt als je alleen je array wilt sorteren, en dat zou je zeker niet moeten doen.
U kunt dit altijd aan de clientzijde doen met behulp van de .sort
of sorted
functie.