Tak, to możliwe, ale podejdź do tego inaczej. Podaję tylko własne dane, ale zrozumiesz koncepcję.
Moja próbka:
{ "array" : [ 2, 4, 3, 5, 2, 6, 8, 1, 2, 1, 3, 5, 9, 5 ] }
Zamierzam „pół-cytować” CTO w tej sprawie i stwierdzić, że Zestawy są uważane za nieuporządkowane .
Istnieje prawdziwe oświadczenie JIRA, grupy Google, które brzmi mniej więcej tak. Więc weźmy to od „Elliota” i zaakceptujmy, że to będzie być tak.
Więc jeśli chcesz uzyskać uporządkowany wynik, musisz masować w ten sposób za pomocą takich etapów
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" }}}
])
A potem rób cokolwiek. Ale teraz twoja tablica jest posortowana.