Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
$regexFindAll
Introduit dans la version 5.0
L'$regexFindAllopérateur d'Amazon DocumentDB est utilisé pour effectuer une correspondance d'expressions régulières sur des champs de chaîne dans des documents. Il vous permet de rechercher et d'extraire des sous-chaînes spécifiques correspondant à un modèle d'expression régulière donné, en renvoyant toutes les correspondances de l'expression régulière.
Paramètres
-
input: le champ ou l'expression de chaîne à rechercher. -
regex: le modèle d'expression régulière à associer. -
options: (facultatif) Objet qui spécifie des paramètres facultatifs pour l'expression régulière, tels que la distinction majuscules/majuscules et la correspondance multiligne. Les options prises en charge sonti(sans distinction majuscules/majuscules) etm(multiligne).
Exemple (MongoDB Shell)
L'exemple suivant montre comment utiliser l'$regexFindAllopérateur pour extraire toutes les séquences de lettres du email champ.
Création d'exemples de documents
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" } ]);
Exemple de requête
db.users.aggregate([ { $project: { name: 1, emailMatches: { $regexFindAll: { input: '$email', regex: '[a-z]+', options: 'i' } } } } ])
Sortie
[
{
_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: [] }
]
}
]
Remarque : si votre requête utilise la version 1 du planificateur Amazon DocumentDB, vous devez utiliser un indice pour utiliser un index. Sans indication, la requête peut effectuer une analyse de la collection. Pour vérifier la version de votre planificateur et en savoir plus sur l'utilisation des astuces, consultez la [documentation Amazon DocumentDB Query Planner] (https://docs.aws.amazon.com/documentdb/latest/developerguide/query-planner.html).
Exemples de code
Pour afficher un exemple de code relatif à l'utilisation de la $regexFindAll commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :