I suggest # 3;):
@Entity
public class Blog {
@Id ObjectId id;
ObjectId authorId;
...
String firstName;
String lastName;
...
String content;
}
Mongodb is well suited for denormalizing data, so I believe you need to add some user-related data to your blog post in order to quickly display a list of blog posts. If you need more information about the user, then in the Blog document (for example, to display the blog), you can first download the blog, and then the user. You also need to update user data on each user blog when it updates its profile.