Is it normal to have 1 object contain all information?

I'm working with a friend on a project and he has everything stored in the user object, so every api returns the user object which essentially returns everything related to that user. For example we would have all the friends ids and first names stored in the user object so every api call we are returning this list of friends ids and first names even though we aren't using it everywhere.

so an example would be

user =
    id: 123456789
    fname: "John",
    lname: "Doe",
    age: "23",
    friends: {id: 123456780, fname: "Alice", id: 123456781 fname: Bob, ...}

Now what I'm thinking is to have a seperate api that will just return the users friends given the user id so we only fetch it when we need it, then we can remove the friends from the user object. It adds an extra call the server but we return a lot less data overall. To me this is the cleaner and just better solution but I'm curious if having everything in 1 object is normal and why it would be better if it is.

We are using mongodb and I know joins don't really exist in mongo so maybe it's better to just have everything in 1 collection or make it so some fields aren't returned when fetching the user object? (I'm not really familiar with mongo so I'm not sure the best way to organize data)