Index on root field vs embedded field

Is there any performance / storage tradeoff between two approaches mentioned below ?

{
   _id
   actionTypeID
   userID
   otherFields
}
db.actionLogs.createIndex(
    {"actionTypeID": 1, "userID": 1},
);
{
   _id
   actionTypeID
   user: { userID: ..., userName: ... }
   otherFields
}
db.actionLogs.createIndex(
    {"actionTypeID": 1, "user.userID": 1},
);

I just want to mentioned that depending of your use cases, and index with userID or user.userID that comes before actionTypeID might be a better as it would be more selective. The cardinality of user is probably much bigger that the cardinality of actions.

As for userID vs user.userID, this is something that can be tested easily.

However, there are advantages of having a user object to encapsulate the user data rather than having it all at the top level. A $project of user:1 will keep (and user:0 will remove) all the user fields, otherwise you have to select fields by fields so you may miss one and if your schema you need to update your code to project in or out the new field. You can easily send the user object to some library function without worrying that your container document is modified by the lib. function.

@Ravish_N_A, if you are satisfied with my explications, please mark it as the solution. This is as courtesy to me for taking the time to reply and to other so they know the information is pertinent. This will help keeping this forum useful and efficient.