sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan sorterer man underdokumenter i array-feltet?

MongoDB tilbyder ikke en måde at gøre dette på, men der er en løsning, som er at opdatere dine dokumenter og bruge $sort opdater operatør for at sortere dit array.

db.collection.update_many({}, {"$push": {"topics": {"$each": [], "$sort": {"weight": -1}}}})

Du kan stadig bruge .aggregate() metode som denne:

db.collection.aggregate([
    {"$unwind": "$topics"}, 
    {"$sort": {"_id": 1, "topics.weight": -1}}, 
    {"$group": {"_id": "$_id", "topics": {"$push": "$topics"}}}
])

Men dette er mindre effektivt, hvis det eneste, du ønsker, er at sortere dit array, og det bør du bestemt ikke gøre.

Du kan altid gøre denne klientside ved at bruge .sort eller sorted funktion.



  1. En tjekliste for udvikling og drift for MongoDB

  2. Sådan installeres Redis

  3. Mongo DB objekt-id deserialisering ved hjælp af JSON serializer

  4. Sådan indsætter du flere dokumenter på én gang i MongoDB gennem Java