filter a una búsqueda o a una eliminación para seleccionar documentos por sus metadatos.
{ "team": "support", "year": { "$gte": 2024 } }
Operadores
| Operador | Coincide con |
|---|---|
{ "key": value }, $eq | Igual al valor; en un array, contiene el valor |
$in | Igual a cualquier valor de una lista |
$ne, $nin | Distinto del valor, o de todos los de una lista (solo búsquedas) |
$gt, $gte, $lt, $lte | Mayor que, como mínimo, menor que, como máximo |
$and, $or | Todos, o alguno, de una lista de filtros |
Ejemplos
| Filtro | Coincide con |
|---|---|
{ "tags": "billing" } | Documentos cuyo array tags contiene billing |
{ "lang": { "$in": ["en", "de"] } } | Documentos en inglés o alemán |
{ "$or": [{ "team": "support" }, { "year": { "$in": [2024, 2025] } }] } | Documentos de soporte, o cualquiera de 2024 o 2025 |
{ "published_at": { "$gte": "2025-06-01" } } | Documentos publicados el 1 de junio de 2025 o después |
{ "file_id": "report.pdf" } | Un archivo subido |
{ "file_id": "report.pdf", "page": 3 } | La página 3 de ese archivo |
Reglas
| Regla | |
|---|---|
| Igualdad | Compara como texto: 3, 3.0 y "3" coinciden entre sí |
| Rangos | Números con números, cadenas con cadenas, byte a byte; escribe las fechas en ISO 8601 con un único formato (2025-06-01 o 2025-06-01T10:00:00Z) |
| Nunca en un rango | Booleanos, elementos de arrays y cadenas de más de 222 bytes |
| Claves ausentes | Un documento sin la clave coincide con $ne y $nin |
| Negaciones | Una que excluye la mayoría de los documentos puede devolver menos resultados que top_k |
| Tamaño | Hasta 256 condiciones, anidadas hasta 8 niveles; cada $and, $or y $in con varios valores cuenta como una |
| Listas | $in y $nin admiten hasta 255 valores |
| Claves desconocidas | No se comprueban: una clave mal escrita no coincide con nada |
| Errores | Un filtro no válido devuelve 400 invalid_filter |