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 に答える