To determine the most suitable model for your application, it is important to consider the common queries used within it. More information about your specific application would be needed in order to recommend the optimal model. One suggestion would be to create a separate collection for weights, including fields such as userId, weight, and date.
This approach would be beneficial if there are times when you need to access user data without the weight history, as well as times when you specifically need to query the weight history for purposes like displaying weight evolution or calculating averages.
If user data and weight history are frequently queried together, embedding an array of weight documents within the users may be another option to consider. However, this method could result in more complex queries due to dealing with nested subdocuments in the array.