Assinatura do Índice Curinga
A partir do MongoDB 5.0, a opção wildcardProjection
para índices curinga está incluída na assinatura do índice. A assinatura do índice é a combinação de parâmetros que identificam exclusivamente o índice. Isso significa que você pode criar vários índices curinga com o mesmo padrão de chave , desde que as opções wildcardProjection
não contenham os mesmos campos.
Exibição de assinatura de projeção
A partir do MongoDB 6.3, 6.0.5 e 5.0.16, o campo wildcardProjection
armazena a projeção do índice na forma enviada. Versões anteriores do servidor podem ter armazenado a projeção de forma normalizada.
O servidor utiliza o índice da mesma maneira, mas você pode notar uma diferença na saída dos comandos listIndexes
e db.collection.getIndexes()
.
Exemplo
Considere o seguinte índice curinga em uma collection books
:
db.books.createIndex( { "$**": 1 }, { wildcardProjection: { "author.name": 1, "author.website": 1 }, name: "authorWildcard" } )
O padrão da chave do índice é "$**"
. Você pode criar outro índice curinga com o mesmo padrão de chave se especificar um wildcardProjection
diferente. Por exemplo:
db.books.createIndex( { "$**": 1 }, { wildcardProjection: { "publisher.name": 1 }, name: "publisherWildcard" } )
Para visualizar os índices criados, execute o método getIndexes()
:
db.books.getIndexes()
Saída:
[ { 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 } } ]