23

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

嵌套的:

 {
        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'
        }
    }
4

1 回答 1

21

这没有什么区别
你要么在做:

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

或者

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

阅读嵌入式文档的点符号

类似地,索引使用点符号来到达文档内部:

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

或者

db.collection.ensureIndex({"account.username": 1});
于 2012-11-15T10:27:02.157 回答