8

MongoDB の最新バージョン (v3.2) では、部分的な (フィルター処理された) インデックスのサポートが追加されています。インデックスを作成するときにフィルターを指定すると、そのフィルターによって、インデックスで参照されるドキュメントと参照されないドキュメントが決まります。

有効なフィルターである限り、任意のフィルター式を使用できますか? または、使用しているフィルターに制限はありますか? もしそうなら、それらの制限は何ですか?

4

1 に答える 1

18

任意のフィルター式を使用できますか?

いいえ、部分インデックスは、使用されるフィルターの演算子のサブセットのみをサポートします。サポートされている演算子は、($ANDトップ レベルのみ)、、、、、、およびのみです。$EQ$LT$LTE$GT$GTE$EXISTSTYPE_OPERATOR

たとえば、、、などを除外$NOT$REGEXます$OR

これは、MongoDB のソースで確認できます

それらの制限は何ですか?

部分インデックスには、いくつかの一般的な制限もあります。

  • _idインデックスを部分インデックスにすることはできません。
  • スパース インデックスを部分インデックスにすることはできません。
  • シャード キー インデックスを部分インデックスにすることはできません。
  • 部分インデックスは、3.2 より前のバージョンではサポートされていません。
于 2015-12-15T15:10:28.340 に答える