MongoDB bietet keine Möglichkeit, dies standardmäßig zu tun, aber es gibt eine Problemumgehung, die darin besteht, Ihre Dokumente zu aktualisieren und den $sort
zu verwenden Update-Operator, um Ihr Array zu sortieren.
db.collection.update_many({}, {"$push": {"topics": {"$each": [], "$sort": {"weight": -1}}}})
Sie können immer noch .aggregate()
verwenden Methode wie folgt:
db.collection.aggregate([
{"$unwind": "$topics"},
{"$sort": {"_id": 1, "topics.weight": -1}},
{"$group": {"_id": "$_id", "topics": {"$push": "$topics"}}}
])
Dies ist jedoch weniger effizient, wenn Sie nur Ihr Array sortieren möchten, und das sollten Sie definitiv nicht tun.
Sie können dies immer clientseitig mit .sort
tun oder sorted
Funktion.