Maison >base de données >tutoriel mysql >Comment obtenir la fonctionnalité « LIKE » de SQL dans les requêtes MongoDB ?

Comment obtenir la fonctionnalité « LIKE » de SQL dans les requêtes MongoDB ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-23 19:31:21878parcourir

How to Achieve SQL's

Correspondance de modèles de MongoDB : un équivalent d'opérateur "LIKE"

L'opérateur

SQL LIKE simplifie les recherches basées sur des modèles. Par exemple, SELECT * FROM users WHERE name LIKE '%m%' récupère tous les utilisateurs avec « m » dans leur nom. MongoDB n'a pas d'équivalent direct LIKE, mais les expressions régulières obtiennent le même résultat.

La solution MongoDB :

Pour rechercher des documents contenant une sous-chaîne spécifique, utilisez cette syntaxe :

<code class="language-javascript">db.collection.find({ field: /.*substring.*/ })</code>

Voici la répartition :

  • db.collection : Spécifie la base de données et la collection.
  • field : Le champ dans lequel effectuer la recherche.
  • substring : La sous-chaîne à laquelle correspondre.

Exemple :

Pour rechercher des utilisateurs avec un « m » dans leur nom :

<code class="language-javascript">db.users.find({ "name": /.*m.*/ })</code>

Exploiter les expressions régulières

MongoDB utilise des expressions régulières pour une correspondance de modèles puissante, dépassant LIKE celle de SQL en termes de flexibilité. Des modèles complexes et des recherches avancées sont facilement mis en œuvre.

Correspondance simplifiée :

Pour des recherches plus simples où la sous-chaîne peut apparaître n'importe où dans le champ :

<code class="language-javascript">db.users.find({ "name": /m/ })</code>

Remarques importantes :

Les caractères spéciaux (par exemple, ".", "*") dans votre sous-chaîne peuvent nécessiter une évasion avec une barre oblique inverse (). Consultez la documentation des expressions régulières MongoDB pour une utilisation détaillée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn