sql >> Database >  >> NoSQL >> MongoDB

Hoe subdocumenten in het arrayveld sorteren?

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.



  1. Hoe converteer je een string naar ObjectId in nodejs mongodb native driver?

  2. MongoDB Voorbeeldoperators

  3. redis-verbindingsfout in docker-container

  4. Kan geen verbinding maken met 127.0.0.1:27017, reden:errno:111 Verbinding geweigerd