MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Tri du résultat de l'agrégation addToSet

Oui, c'est possible, mais abordez-le différemment. Je fournis juste mes propres données pour cela, mais vous comprendrez le concept.

Mon échantillon :

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

Je vais "semi-citer" le CTO à ce sujet et déclarer que Sets sont considérés comme non ordonnés .

Il existe une véritable déclaration de groupes JIRA, Google qui ressemble à cela. Prenons donc "Elliot" et acceptons que cela va être le cas.

Donc, si vous voulez un résultat ordonné, vous devez masser de cette façon avec des étapes comme celle-ci

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" }}}

])

Et puis faire n'importe quoi. Mais maintenant votre tableau est trié.