Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
$regexFindAll
Introducido en 5.0
El $regexFindAll operador de Amazon DocumentDB se utiliza para realizar coincidencias de expresiones regulares en los campos de cadenas de texto de los documentos. Le permite buscar y extraer subcadenas específicas que coincidan con un patrón de expresión regular determinado y devuelve todas las coincidencias de la expresión regular.
Parámetros
-
input: el campo de cadena o la expresión que se va a buscar. -
regex: el patrón de expresión regular que debe coincidir. -
options: (opcional) Un objeto que especifica parámetros opcionales para la expresión regular, como la distinción entre mayúsculas y minúsculas y la coincidencia de líneas múltiples. Las opciones admitidas soni(no distingue entre mayúsculas y minúsculas) ym(multilínea).
Ejemplo (MongoDB Shell)
El siguiente ejemplo muestra cómo utilizar el $regexFindAll operador para extraer todas las secuencias de letras del email campo.
Cree documentos de muestra
db.users.insertMany([ { _id: 1, name: "John Doe", email: "john@example.com", phone: "555-1234" }, { _id: 2, name: "Jane Roe", email: "jane@example.com", phone: "555-5678" }, { _id: 3, name: "Carlos Salazar", email: "carlos@example.com", phone: "555-3456" }, { _id: 4, name: "Saanvi Sarkar", email: "saanvi@example.com", phone: "555-7890" } ]);
Ejemplo de consulta
db.users.aggregate([ { $project: { name: 1, emailMatches: { $regexFindAll: { input: '$email', regex: '[a-z]+', options: 'i' } } } } ])
Salida
[
{
_id: 1,
name: 'John Doe',
emailMatches: [
{ match: 'john', idx: 0, captures: [] },
{ match: 'example', idx: 5, captures: [] },
{ match: 'com', idx: 13, captures: [] }
]
},
{
_id: 2,
name: 'Jane Roe',
emailMatches: [
{ match: 'jane', idx: 0, captures: [] },
{ match: 'example', idx: 5, captures: [] },
{ match: 'com', idx: 13, captures: [] }
]
},
{
_id: 3,
name: 'Carlos Salazar',
emailMatches: [
{ match: 'carlos', idx: 0, captures: [] },
{ match: 'example', idx: 7, captures: [] },
{ match: 'com', idx: 15, captures: [] }
]
},
{
_id: 4,
name: 'Saanvi Sarkar',
emailMatches: [
{ match: 'saanvi', idx: 0, captures: [] },
{ match: 'example', idx: 7, captures: [] },
{ match: 'com', idx: 15, captures: [] }
]
}
]
Nota: Si su consulta utiliza la versión 1 del planificador de Amazon DocumentDB, debe utilizar una sugerencia para utilizar un índice. Sin una pista, la consulta puede realizar un escaneo de la colección. Para comprobar la versión del planificador y obtener más información sobre el uso de las sugerencias, consulte la [documentación del planificador de consultas de Amazon DocumentDB] (https://docs.aws.amazon.com/documentdb/latest/developerguide/query-planner.html).
Ejemplos de código
Para ver un ejemplo de código para usar el $regexFindAll comando, elija la pestaña correspondiente al idioma que desee usar: