Funciones de funcionalidad
Los campos que se referencian en los parámetros de las funciones de funcionalidad deben configurarse como campos de índice o de atributo, según la descripción de cada función.
A document field used as a function parameter must be configured as an index or an attribute, as required by the specific function.
in o notin: determina si los valores de un campo están en una lista específica
Sintaxis
in(field, "number1|number2")notin(field, "number1|number2")
Parámetros
field: nombre del campo por evaluar. Solo se admiten campos de tipo INT, LITERAL, FLOAT o DOUBLE. No se admiten campos de tipo ARRAY ni TEXT, tampoco el analizador para búsquedas difusas. number N: elementos de un conjunto. Separe varios elementos con barras verticales (|). Cada elemento debe ser una cadena.
Valores de retorno
true/false
Escenarios
Escenario 1: recuperar documentos que contienen "iphone" y cuyo campo type tiene valor 1, 2 o 3. El campo type debe ser de tipo INT.
query=default:'iphone'&&filter=in(type, '1|2|3')
Escenario 2: recuperar documentos que contienen "iphone" y cuyo campo type no tiene valor 1, 2 ni 3. El campo type debe ser de tipo INT32.
query=default:'iphone'&&filter=notin(type, '1|2|3')
-
Notas de uso
El campo que se referencia en los parámetros de las funciones debe configurarse como campo de atributo.
Si utiliza la función in o notin en cláusulas filter, no puede usar campos de tipo ARRAY. De lo contrario, se devuelve el siguiente error de sintaxis con código 6141: Filter clause syntax error.
La función
in(field, "value1|value2")equivale a(field = value1) OR (field = value2). Sin embargo, la funcióninofrece mejor rendimiento. El mismo principio aplica para la funciónnotin.Proporcionar una gran cantidad de valores (por ejemplo, miles) a la función
inonotinpuede degradar significativamente el rendimiento de la consulta. Una lista de valores más larga incrementa la sobrecarga computacional del filtrado, lo que puede provocar mayor latencia en las consultas o incluso un tiempo de espera agotado.Si necesita pasar una gran cantidad de valores, divida la lista en lotes más pequeños (por ejemplo, 500 valores o menos por lote), ejecute consultas separadas y luego combine los resultados.