MongoDB查询中的嵌套文档是否会影响性能?

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'
        }
    }
1个回答

21

没有差别
你要么在做:

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

了解嵌入式文档的点符号表示法,请参阅点符号表示法

同样,索引使用点符号表示法来访问文档内部:

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

或者

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接