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

Sortering af aggregering addToSet resultat

Ja det er muligt, men gribe det anderledes an. Jeg giver bare mine egne data til dette, men du får konceptet.

Mit eksempel:

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

Jeg vil "semicitere" CTO'en om dette og oplyse, at sæt anses for at være uordnet .

Der er en faktisk JIRA, Google-gruppers erklæring, der lyder sådan noget. Så lad os tage det fra "Elliot" og acceptere, at dette vil være tilfældet.

Så hvis du vil have et ordnet resultat, skal du massere på den måde med stadier som denne

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

])
 

Og så gør hvad som helst. Men nu er dit array sorteret.




  1. projektion fungerer ikke med find-forespørgsel

  2. Afrunding til 2 decimaler ved hjælp af MongoDB aggregeringsramme

  3. Sådan implementeres Redis Multi-Exec ved at bruge Spring-data-Redis

  4. Port forwarding med nginx fra java