For AI agents: a documentation index is available at https://www.mongodb.com/pt-br/docs/llms.txt — markdown versions of all pages are available by appending .md to any URL path.
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Menu Docs

Como indexar os elementos de uma array

Para indexar matrizes, o MongoDB Search requer apenas o tipo de dados dos elementos da matriz . Você não precisa especificar que os dados estão contidos em uma array ([]) na definição de índice.

Se você habilitar mapeamentos dinâmicos, MongoDB Search indexará automaticamente elementos de tipos de dados indexáveis dinamicamente dentro do array. Para saber mais sobre os tipos de dados que o MongoDB Search indexa dinamicamente, veja Tipos de campo do MongoDB Search.

Você pode utilizar o Editor Visual ou o Editor JSON na UI do Atlas para definir o índice para elementos em arrays.

O MongoDB Search indexa os tipos de dados suportados dentro de uma matriz nivelando os campos durante a indexação.

Exemplo

Considere os seguintes documentos:

doc1 = { a: {b: [[<value1>, <value2>], <value3>] }}
doc2 = { a: {b: [<value1>, <value2>, <value3>] } }
doc3 = { a: [{ b: <value1>}, {b: <value2>}, {b: <value3>}] }

O MongoDB Search nivela as arrays anteriores semelhante à seguinte durante a indexação:

LuceneDoc<n> = {"a.b":[<value1>,<value2>,<value3>]}

Para fazer query em campos dentro de um array de documentos ou objetos, você deve usar o tipo EmbeddedDocuments para indexar o campo que contém o array de objetos.

Para definir o índice para os elementos de array, escolha seu método de configuração preferido na UI do Atlas e então selecione o banco de dados e a collection.

  1. Clique em Refine Your Index para configurar seu índice.

  2. Na seção Field Mappings, clique em Add Field Mapping para abrir a janela Add Field Mapping.

  3. Clique em Customized Configuration.

  4. Selecione o campo da array do tipo a ser indexada no menu suspenso Field Name .

  5. Clique no menu suspenso Data Type e selecione o tipo de dados do elemento de matriz que você deseja indexar. Para saber mais sobre a configuração das propriedades do tipo selecionado, consulte a documentação do tipo selecionado.

  6. Clique em Add.

A seguir está a sintaxe JSON para indexar elementos dentro de uma array. Substitua a definição de índice padrão pelo seguinte.

1{
2 "mappings": {
3 "dynamic": true|false,
4 "fields": {
5 "<array-field-name>": {
6 "type": "<array-element-data-type>"
7 }
8 }
9 }
10}

The following index definition example uses the sample_mflix.movies collection. If you have the sample data already loaded on your cluster, you can use the Visual Editor or JSON Editor in the Atlas UI to configure the index. After you select your preferred configuration method, select the database and collection, and refine your index to add field mappings.

A seguinte definição de índice indexa o campo genres , que contém uma array de valores de string.

  1. Na janela Add Field Mapping, selecione genres no menu suspenso Field Name.

  2. Clique no menu suspenso Data Type e selecione String.

  3. Mantenha as configurações padrão para o String Properties.

  4. Clique em Add.

Substitua a definição de índice padrão pela seguinte definição de índice.

1{
2 "mappings": {
3 "fields": {
4 "genres": {
5 "type": "string"
6 }
7 }
8 }
9}