MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

AddToSet-Ergebnis sortieren

Ja, es ist möglich, aber gehen Sie es anders an. Ich stelle nur meine eigenen Daten dafür zur Verfügung, aber Sie bekommen das Konzept.

Mein Beispiel:

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

Ich werde den CTO diesbezüglich "halb zitieren" und sagen, dass Sets gelten als ungeordnet .

Es gibt eine tatsächliche JIRA-, Google-Gruppen-Anweisung, die ungefähr so ​​lautet. Also nehmen wir es von "Elliot" und akzeptieren, dass dies wird der Fall sein.

Wenn Sie also ein geordnetes Ergebnis wünschen, müssen Sie mit Phasen wie dieser auf diese Weise massieren

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

])

Und dann mach was auch immer. Aber jetzt ist Ihr Array sortiert.