Requête sur le modèle qui a EmbedsMany relation inclura des instances du modèle de détail associé dans le résultat. En effet, le modèle enfant sera conservé dans un champ de la table principale, sous la forme d'un document, si vous utilisez une base de données SQL.
HasMany stocke l'identifiant du modèle associé et c'est à vous d'inclure ou non une instance du modèle associé dans votre requête. Dans ce cas, les données principales et détaillées seront stockées dans des tables séparées.
Ce qu'il vaut mieux utiliser dépend vraiment de vous et de vos besoins.