MongoDB の最新バージョン (v3.2) では、部分的な (フィルター処理された) インデックスのサポートが追加されています。インデックスを作成するときにフィルターを指定すると、そのフィルターによって、インデックスで参照されるドキュメントと参照されないドキュメントが決まります。
有効なフィルターである限り、任意のフィルター式を使用できますか? または、使用しているフィルターに制限はありますか? もしそうなら、それらの制限は何ですか?
MongoDB の最新バージョン (v3.2) では、部分的な (フィルター処理された) インデックスのサポートが追加されています。インデックスを作成するときにフィルターを指定すると、そのフィルターによって、インデックスで参照されるドキュメントと参照されないドキュメントが決まります。
有効なフィルターである限り、任意のフィルター式を使用できますか? または、使用しているフィルターに制限はありますか? もしそうなら、それらの制限は何ですか?
任意のフィルター式を使用できますか?
いいえ、部分インデックスは、使用されるフィルターの演算子のサブセットのみをサポートします。サポートされている演算子は、($AND
トップ レベルのみ)、、、、、、およびのみです。$EQ
$LT
$LTE
$GT
$GTE
$EXISTS
TYPE_OPERATOR
たとえば、、、などを除外$NOT
し$REGEX
ます$OR
。
これは、MongoDB のソースで確認できます。
それらの制限は何ですか?
部分インデックスには、いくつかの一般的な制限もあります。
_id
インデックスを部分インデックスにすることはできません。