MongoDB5.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 } } ]