如果我为用户名字段创建索引,哪个文档更适合查询特定用户?

嵌套的一个:

 {
        account:{
        username:'zhengyi',
        passwd:'zhengyi',
        friends:[]
        }
        dev:{
            os:'iOS',
            ver:'6.0',
            hw:'iPhone2,1'
        },
        app:{
            ver:'1.0',
            pver:'1.0'
        }
    }

未嵌套的:
  {
        username:'zhengyi',
        passwd:'zhengyi',
        friends:[],
        dev:{
            os:'iOS',
            ver:'6.0',
            hw:'iPhone2,1'
        },
        app:{
            ver:'1.0',
            pver:'1.0'
        }
    }

最佳答案

没关系
您正在做:

db.collection.findOne({"username":"zhengyi"});

要么
db.collection.findOne({"account.username":"zhengyi"});

dot notation上阅读以获取嵌入式文档

同样,索引使用点符号到达文档内部:
db.collection.ensureIndex({"username": 1});

要么
db.collection.ensureIndex({"account.username": 1});

10-04 11:13