1

私はmongodbに以下のようなドキュメントの構造を持っています

{
  "_id": "some_id",
    "key1": "value1",
    "key2": "value2",
    "key3": [
             {"subkey1":"subval1", "subkey2":"subval2",   "subkey3":"subval3"},
             {"subkey1":"subval11", "subkey2":"subval21", "subkey3":"subval31"},
             {"subkey1":"subval12", "subkey2": "subval22", "subkey3":"subval32"}
            ],
    "key4": "value4"
}

「subkey1」にインデックスを付けたい。どうやってするの???

またはそれは不可能ですか(この場合、「key3」のインデックスでそれほど効率的に機能しますか)???

4

1 に答える 1

1

必要なキーにインデックスを追加するには、ensureIndexを使用するだけです

db.foos.ensureIndex({"key3.subkey1": 1})

ドキュメントに示されているように:

ドキュメントに格納されているインデックスキーフィールドの値が配列の場合、MongoDBは配列の各要素にインデックスを付けます

key3のみにインデックスを追加する場合、「key3.subkey1」を使用してクエリを実行する場合は使用されません。

于 2012-04-04T10:44:25.430 に答える