Você pode usar o tipo numberFacet do MongoDB Search para indexar valores numéricos usando o representation especificado para facet. Você pode indexar números de tipos BSON int32, int64 e double.
O MongoDB Search suporta apenas queries de operadores de faceta em campos indexados como o tipo numberFacet . Para executar uma pesquisa normal também no mesmo campo, você também deve indexar o campo como tipo number.
Para faceta campos de string em documentos incorporados, você deve indexar os campos pai como o tipo de documento. Quando você faceta um campo de string dentro de documentos incorporados, o MongoDB Search retorna a contagem de faceta apenas para o número de documentos pai correspondentes.
O MongoDB Search não indexa dinamicamente valores number para facetamento. Você deve usar mapeamentos estáticos para indexar valores number para facet. Você pode utilizar o Editor Visual ou o Editor JSON na UI do Atlas para indexar campos number como o tipo number.
numberFacet Limitações de tipo
Aplicam-se as seguintes limitações:
Não é possível indexar
decimal128para faceta.Não é possível indexar valores numéricos em arrays ou em um documento contido em uma array para facetmento.
Não é possível facetar campos numéricos indexados como parte de um campo
embeddedDocuments.
Definir o índice para o tipo numberFacet
Para definir o índice para o tipo numberFacet , escolha seu método de configuração preferido na UI do Atlas e então selecione o banco de dados e collection.
Clique em Refine Your Index para configurar seu índice.
Na seção Field Mappings, clique em Add Field Mapping para abrir a janela Add Field Mapping.
Clique em Customized Configuration.
Selecione o campo a ser indexado no menu suspenso Field Name.
Observação
Você não pode indexar campos que contêm o sinal de dólar (
$) no início do nome do campo.Clique no menu suspenso Data Type e selecione NumberFacet.
Configure as propriedades do campo para o tipo
numberFacet. Para saber mais, consulte Propriedades do campo.Clique em Add.
O seguinte é a sintaxe JSON para o tipo numberFacet. Substitua a definição de índice padrão pelo seguinte. Para saber mais sobre os campos, consulte Propriedades do Campo.
{ "mappings": { "dynamic": true|false, "fields": { "<field-name>": { "type": "numberFacet", "representation": "int64|double", "indexIntegers": true|false, "indexDoubles": true|false } } } }
Configurar propriedades de campo do numberFacet
O tipo MongoDB Search numberFacet usa os seguintes parâmetros:
Opção | Tipo | necessidade | Descrição | Default |
|---|---|---|---|---|
| string | Obrigatório | O tipo de campo. O valor deve ser | |
| string | Opcional | O tipo de dados do campo a indexar. Os valores podem ser um dos seguintes tipos de BSON :
Para saber mais, consulte exemplo abaixo. |
|
| booleano | Opcional | Indica se deve indexar ou omitir a indexação de valores do tipo |
|
| booleano | Opcional | Indica se indexar ou omitir valores de tipo de indexação |
|
Experimente um exemplo para o tipo de numberFacet
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 definição de índice de exemplo a seguir indexa o campo year como o tipo MongoDB Search numberFacet para oferecer suporte a queries nesse campo usando a faceta MongoDB Search.
Na janela Add Field Mapping, selecione year no menu suspenso Field Name.
Clique no menu suspenso Data Type e selecione NumberFacet.
Aceite os valores padrão para o NumberFacet Properties.
Clique em Add.
Substitua a definição de índice padrão pela seguinte definição de índice.
{ "mappings": { "dynamic": false, "fields": { "year": { "type": "numberFacet" } } } }
O exemplo de definição de índice a seguir indexa o campo year como os tipos numberFacet e number para retornar os seguintes tipos de resultados para suas queries:
Resultados de metadados para queries usando o MongoDB Search
facet(Operador de Pesquisa do MongoDB).Resultados da pesquisa para queries usando operadores de pesquisa do MongoDB, como próximo, igual e intervalo.
Na janela Add Field Mapping, selecione year no menu suspenso Field Name.
Clique no menu suspenso Data Type e selecione NumberFacet.
Aceite os valores padrão para o NumberFacet Properties.
Clique em Add.
Repita a etapa 1 e selecione Number no menu suspenso Data Type.
Aceite os valores padrão para o Number Properties.
Clique em Add.
Substitua a definição de índice padrão pela seguinte definição de índice.
{ "mappings": { "dynamic": false, "fields": { "year": [ { "type": "numberFacet" }, { "type": "number" } ] } } }
Saiba mais
Para aprender mais sobre o coletor facet e ver exemplos de queries, consulte Exemplos.
Para saber como criar um índice com uma definição de faceta e consultar esse índice usando o coletor facet, consulte o tutorial Como usar facets com o MongoDB Search.