mongodb查询中的嵌套文档是否存在性能差异?

use*_*237 19 performance nested mongodb

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

嵌套的:

 {
        account:{
        username:'zhengyi',  
        passwd:'zhengyi',
        friends:[]
        }
        dev:{
            os:'iOS',
            ver:'6.0',
            hw:'iPhone2,1'
        },
        app:{
            ver:'1.0',
            pver:'1.0'
        }
    }
Run Code Online (Sandbox Code Playgroud)

无人驾驶的:

  {    
        username:'zhengyi',
        passwd:'zhengyi',
        friends:[],
        dev:{
            os:'iOS',
            ver:'6.0',
            hw:'iPhone2,1'
        },
        app:{
            ver:'1.0',
            pver:'1.0'
        }
    }
Run Code Online (Sandbox Code Playgroud)

Ale*_*lex 17

它没有任何区别
你正在做:

db.collection.findOne({"username":"zhengyi"});
Run Code Online (Sandbox Code Playgroud)

要么

db.collection.findOne({"account.username":"zhengyi"});
Run Code Online (Sandbox Code Playgroud)

阅读嵌入式文档的点符号

同样,索引使用点表示法到达文档内部:

db.collection.ensureIndex({"username": 1});
Run Code Online (Sandbox Code Playgroud)

要么

db.collection.ensureIndex({"account.username": 1});
Run Code Online (Sandbox Code Playgroud)