sql >> Databasteknik >  >> NoSQL >> MongoDB

Sortering av aggregering addToSet-resultat

Ja det är möjligt, men ta det på ett annat sätt. Jag tillhandahåller bara mina egna uppgifter för detta, men du kommer att förstå konceptet.

Mitt exempel:

{ "array" : [  2,  4,  3,  5,  2,  6,  8,  1,  2,  1,  3,  5,  9,  5 ] }

Jag kommer att "semicitera" CTO om detta och konstatera att Set anses vara oordnade .

Det finns ett verkligt uttalande från JIRA, Google-grupper som är ungefär så. Så låt oss ta det från "Elliot" och acceptera att detta kommer vara fallet.

Så om du vill ha ett ordnat resultat måste du massera på det sättet med sådana här stadier

db.collection.aggregate([

    // Initial unwind
    {"$unwind": "$array"},

    // Do your $addToSet part
    {"$group": {"_id": null, "array": {"$addToSet": "$array" }}},

    // Unwind it again
    {"$unwind": "$array"},

    // Sort how you want to
    {"$sort": { "array": 1} },

    // Use $push for a regular array
    {"$group": { "_id": null, "array": {"$push": "$array" }}}

])

Och sedan göra vad som helst. Men nu är din array sorterad.




  1. Använder Redis SCAN i NODE

  2. Behöver jag stänga en mongoose-anslutning manuellt?

  3. Begränsningar för Hadoop, sätt att lösa Hadoop-nackdelar

  4. projektion fungerar inte med sökfråga