Is there any performance difference for nested document in mongodb query
mongodb, nested, performance
Solution
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});
Problem
If I create an index for username field, which document is better for query a specific user? The nested one: ``` { account:{ username:'zhengyi', passwd:'zhengyi', friends:[] } dev:{ os:'iOS', ver:'6.0', hw:'iPhone2,1' }, app:{ ver:'1.0', pver:'1.0' } } ``` The unnested one: ``` { username:'zhengyi', passwd:'zhengyi', friends:[], dev:{ os:'iOS', ver:'6.0', hw:'iPhone2,1' }, app:{ ver:'1.0', pver:'1.0' } } ```