6

複合インデックスは次のように定義されることを知っています。

db.products.ensureIndex( { "item": 1, "stock": 1 } )

そして、次のようなハッシュされた単純なインデックス:

db.active.ensureIndex( { item: "hashed" } )

問題は、両方を達成する方法ですか?

4

3 に答える 3

5

ハッシュ化されたインデックスのドキュメントによると、できません!

MongoDB は、任意の単一フィールドのハッシュ インデックスをサポートします。ハッシュ関数はサブドキュメントを縮小し、値全体のハッシュを計算しますが、マルチキー (配列) インデックスはサポートしていません。

ハッシュ化されたインデックス フィールドを持つ複合インデックスを作成することはできません

PS: 上記はバージョン 2.4 および 2.6 (現時点では最新) で有効です。

PS2: @naman の回答によると、バージョン 4.4 で可能になりました。

于 2014-02-01T19:23:14.797 に答える
2

複合ハッシュ インデックスを実現したい場合は、バージョン 4.4 以降で実現可能です。ドキュメントから、次のように作成できるようになりました。

db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )
db.collection.createIndex( { "fieldA" : 1, "fieldB" : "hashed", "fieldC" : -1 } )

問題の特定の例について

db.products.ensureIndex( { "item": "hashed", "stock": 1 } )
于 2021-01-22T11:26:31.283 に答える