MongoDB(39) - インデックス作成のオプション

今回は、インデックス作成のオプションを確認します。

インデックス作成時のオプション

インデックスを作成する時には、オプション指定することができます。

オプションの一覧は下記の通りです。

項目名説明
backgroundバックグラウンドでインデックスを作成します。
デフォルトはfalseです。
nameインデックス名を指定します。
uniquetureを指定するとユニークインデックスを作成します。
ユニークインデックスにすると、nullは入れられません。
デフォルトはfalseです。
partialFilterExpressionフィルターを作成し、フィルターに一致したドキュメントの部分インデックスを作成します。
フィルターには以下の条件を設定できます。
・等式(key:valueまたは$eq)
$exists (trueのみ)
$gt, $gte, $lt, $lte
$type
$and

インデックスに名前を付けて、バックグラウンドで作成

memberコレクションに対して、インデックス名を”index_e_id”とし、バックグラウンドでインデックスを作成すると下記のようになります。

インデックスのオプションはcreateIndexの第2引数に指定します。

[Mongoシェル]

1
2
3
4
5
6
7
> db.member.createIndex({e_id:1}, {name:'index_e_id', background:true})
{
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"createdCollectionAutomatically" : true,
"ok" : 1
}

部分インデックスの作成

memberコレクションに対して、所属(group)が”開発1部”のドキュメントだけに対してインデックスを作成すると下記のようになります。

[Mongoシェル]

1
2
3
4
5
6
7
> db.member.createIndex({e_id:1}, {partialFilterExpression:{group:"開発1部"}})
{
"numIndexesBefore" : 2,
"numIndexesAfter" : 3,
"createdCollectionAutomatically" : false,
"ok" : 1
}

次回は、インデックスの削除を行います。