Sì, è possibile, ma affrontalo in modo diverso. Fornisco solo i miei dati per questo, ma otterrai il concetto.
Il mio campione:
{ "array" : [ 2, 4, 3, 5, 2, 6, 8, 1, 2, 1, 3, 5, 9, 5 ] }
Farò una "virgoletta parziale" del CTO su questo e affermerò che Sets sono considerati non ordinati .
C'è una vera JIRA, dichiarazione dei gruppi di Google che va qualcosa del genere. Quindi prendiamolo da "Elliot" e accettiamo che questo farà sia il caso.
Quindi, se vuoi un risultato ordinato, devi massaggiare in questo modo con fasi come questa
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" }}}
])
E poi fai qualunque cosa. Ma ora il tuo array è ordinato.