$text - Amazon DocumentDB

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.

$text

L'$textopé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)

L'exemple suivant montre comment utiliser l'$textopérateur pour rechercher des documents contenant le mot « intérêt » et filtrer les résultats en fonction d'un champ « star_rating ».

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_rating » égal à 5.

Exemples de code

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()