

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.

# \$1text
<a name="text"></a>

L'`$text`opérateur est utilisé pour effectuer une recherche en texte intégral dans les champs indexés au sein d'une collection de documents. Cet opérateur vous permet de rechercher des documents contenant des mots ou des phrases spécifiques et peut être combiné à d'autres opérateurs de requête pour filtrer les résultats en fonction de critères supplémentaires.

**Paramètres**
+ `$search`: chaîne de texte à rechercher.

## Exemple (MongoDB Shell)
<a name="text-examples"></a>

L'exemple suivant montre comment utiliser l'`$text`opérateur pour rechercher des documents contenant le mot « intérêt » et filtrer les résultats en fonction d'un champ « star\$1rating ».

**Création d'exemples de documents**

```
db.test.insertMany([
  { "_id": 1, "star_rating": 4, "comments": "apple is red" },
  { "_id": 2, "star_rating": 5, "comments": "pie is delicious" },
  { "_id": 3, "star_rating": 3, "comments": "apples, oranges - healthy fruit" },
  { "_id": 4, "star_rating": 2, "comments": "bake the apple pie in the oven" },
  { "_id": 5, "star_rating": 5, "comments": "interesting couch" },
  { "_id": 6, "star_rating": 5, "comments": "interested in couch for sale, year 2022" }
]);
```

**Création d'un index de texte**

```
db.test.createIndex({ comments: "text" });
```

**Exemple de requête**

```
db.test.find({$and: [{star_rating: 5}, {$text: {$search: "interest"}}]})
```

**Sortie**

```
{ "_id" : 5, "star_rating" : 5, "comments" : "interesting couch" }
{ "_id" : 6, "star_rating" : 5, "comments" : "interested in couch for sale, year 2022" }
```

La commande ci-dessus renvoie des documents contenant un champ indexé sous forme de texte contenant n'importe quelle forme d' « intérêt » et un « star\$1rating » égal à 5.

## Exemples de code
<a name="text-code"></a>

Pour afficher un exemple de code d'utilisation de la `$text` commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

------
#### [ Node.js ]

```
const { MongoClient } = require('mongodb');

async function searchDocuments() {
  const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false');
  const db = client.db('test');
  const collection = db.collection('test');

  const result = await collection.find({
    $and: [
      { star_rating: 5 },
      { $text: { $search: 'interest' } }
    ]
  }).toArray();

  console.log(result);
  client.close();
}

searchDocuments();
```

------
#### [ Python ]

```
from pymongo import MongoClient

def search_documents():
    client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
    db = client['test']
    collection = db.test

    result = list(collection.find({
        '$and': [
            {'star_rating': 5},
            {'$text': {'$search': 'interest'}}
        ]
    }))

    print(result)
    client.close()

search_documents()
```

------