L’opérateur de recherche de texte en MongoDB peut être utilisé pour effectuer une recherche de texte sur le contenu d’une collection. Pour utiliser la recherche de texte, vous devez d’abord créer un index de texte sur le champ sur lequel vous voulez effectuer la recherche.
Voici comment vous pouvez le faire :
1. Créez un index de texte :
Utilisez la commande `createIndex` pour créer un index de texte. Par exemple, si vous avez une collection `posts` et que vous voulez faire une recherche de texte sur le champ `title`, vous pouvez le faire de la façon suivante : \`\`\` db.posts.createIndex( { title: “text” } ) \`\`\` Vous pouvez également créer un index de texte sur plusieurs champs : \`\`\` db.posts.createIndex( { title: “text”, description: “text” } ) \`\`\`1. Utilisez l’opérateur de recherche de texte :
Une fois que vous avez créé l’index de texte, vous pouvez utiliser l’opérateur `$text` pour effectuer une recherche de texte. Par exemple : \`\`\` db.posts.find( { $text: { $search: “mongoDB” } } ) \`\`\` Cette commande retournera tous les documents de la collection `posts` où le champ `title` contient le mot “mongoDB”. Vous pouvez également rechercher plusieurs mots en les séparant par un espace. Par exemple, pour rechercher “mongoDB tutorial”, vous pouvez le faire comme ceci : \`\`\` db.posts.find( { $text: { $search: “mongoDB tutorial” } } ) \`\`\`Remarque :
- La recherche de texte en MongoDB est sensible à la casse et ne prend pas en compte les caractères diacritiques.
- Les index de texte prennent en charge les recherches de texte dans plusieurs langues. Vous pouvez spécifier une langue lors de la création de l’index ou lors de l’utilisation de l’opérateur de recherche de texte.
- Pour exclure un mot de la recherche, vous pouvez le précéder de “-” (moins).
- Pour la recherche de phrases exactes, vous devez le mettre entre guillemets. Par exemple:
\`\`\` db.posts.find( { $text: { $search: ““mongoDB tutorial”“ } } ) \`\`\` Il retournera tous les documents qui contiennent la phrase exacte “mongoDB tutorial”.