Docs Menu
Docs Home
/
MongoDBマニュアル
/ / / /

ワイルドカード インデックス署名

項目一覧

  • プロジェクション署名の表示
  • 詳細

MongoDB 5.0以降、 ワイルドカード インデックス wildcardProjectionオプションがインデックス署名に含まれます。 インデックス署名は、インデックスを一意に識別するパラメーターの組み合わせです。 つまり、 wildcardProjectionオプションに同じフィールドが含まれていない限り、同じキー パターンを持つ複数のワイルドカード インデックスを作成できます。

MongoDB 6.3、6.0.5、および 5.0.16 以降では、wildcardProjection フィールドには送信された形式でインデックス プロジェクションが格納されます。それ以前のバージョンでは、プロジェクションは正規化された形式で保存されている場合があります。

サーバーは同じ方法でインデックスを使用しますが、 listIndexes } コマンドとdb.collection.getIndexes()コマンドの出力には違いが生じる場合があります。

booksコレクションの次のワイルドカード インデックスを検討します。

db.books.createIndex(
{
"$**": 1
},
{
wildcardProjection: {
"author.name": 1,
"author.website": 1
},
name: "authorWildcard"
}
)

インデックスキー パターンは"$**"です。 別のwildcardProjectionを指定すると、同じキー パターンを持つ別のワイルドカード インデックスを作成できます。 例:

db.books.createIndex(
{
"$**": 1
},
{
wildcardProjection: {
"publisher.name": 1
},
name: "publisherWildcard"
}
)

作成されたインデックスを表示するには、 getIndexes()メソッドを実行します。

db.books.getIndexes()

出力:

[
{ v: 2, key: { _id: 1 }, name: '_id_' },
{
v: 2,
key: { '$**': 1 },
name: 'authorWildcard',
wildcardProjection: { author: { website: true, name: true }, _id: false }
},
{
v: 2,
key: { '$**': 1 },
name: 'publisherWildcard',
wildcardProjection: { publisher: { name: true }, _id: false }
}
]

戻る

埋め込みオブジェクトと配列