Структурата ви изглежда правилна. Съхранявате само news_id в полето за данни и това е по-интелигентно изпълнение, тъй като съхраняването на целия документ ще доведе до много преместване и писане от MongoDB всеки път, когато нова новина бъде добавена към любими от потребителя.
Причината, която вероятно вече знаете, е, че при всяка актуализация се създава нов документ. Справка:http://docs.mongodb.org/ manual/reference/method/db.collection.save/#upsert .
Също така мисля, че като бизнес правило трябва да ограничите броя на новините, които могат да бъдат зададени като предпочитани от потребителя. Разрешаването на този списък да расте безкрайно няма да е добра идея за вградения дизайн.
В случай, че искате неограничен брой любими, по-добре създайте отделна колекция за това и след това, за да получите всички любими от даден потребител, използвайте оператори $match (на потребителския идентификатор) и $sort (на новини) в заявка за обобщаване вземете сортирания списък с любими новини за потребителя.