$push - adds items in the order in which they were received. Also, you can add the same items several times.
$addToSet - adds just unique items, but the order of items is not guaranteed.
If you want to add unique items in the order, you can group and add elements with the help of $addToSet, then $unwind the array with elements, $sort by items, and then do $group again with $push items.