If I create an index for username field, which document is better for query a specific user?
The nested one:
{
account:{
username:\'z
It doesn't make a difference
You're either doing:
db.collection.findOne({"username":"zhengyi"});
or
db.collection.findOne({"account.username":"zhengyi"});
Read up on the dot notation for embedded documents
Similarly, indexes use the dot notation to reach inside a document:
db.collection.ensureIndex({"username": 1});
Or
db.collection.ensureIndex({"account.username": 1});