$text - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

$text

Der $text Operator wird verwendet, um eine Volltextsuche in textindizierten Feldern innerhalb einer Dokumentensammlung durchzuführen. Mit diesem Operator können Sie nach Dokumenten suchen, die bestimmte Wörter oder Ausdrücke enthalten. Er kann mit anderen Abfrageoperatoren kombiniert werden, um Ergebnisse anhand zusätzlicher Kriterien zu filtern.

Parameter

  • $search: Die Textzeichenfolge, nach der gesucht werden soll.

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt, wie der $text Operator verwendet wird, um nach Dokumenten zu suchen, die das Wort „Interesse“ enthalten, und die Ergebnisse anhand eines Felds „star_rating“ zu filtern.

Erstellen Sie Beispieldokumente

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" } ]);

Textindex erstellen

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

Beispiel für eine Abfrage

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

Ausgabe

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

Der obige Befehl gibt Dokumente mit einem textindizierten Feld zurück, das eine beliebige Form von „Interesse“ und ein „Star_Rating“ gleich 5 enthält.

Codebeispiele

Um ein Codebeispiel für die Verwendung des $text Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten:

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