MongoDB unterstützt die Textsuche durch das Erstellen von Textindizes auf Collections von Dokumenten. Der Textsuchoperator `$text` durchsucht ein Feld, das einen String oder ein Array von String-Elementen enthält.
Folgen Sie diesen Schritten, um den Textsuchoperator zu verwenden:
1. Erstellen Sie einen Textindex auf dem entsprechenden Feld. Ein Beispiel könnte sein:
```javascript
db.collection.createIndex({fieldName: “text”});
```
Ersetzen Sie dabei “collection” durch den Namen Ihrer Sammlung und “fieldName” durch das Feld, das Sie durchsuchen möchten.
2. Nachdem Sie den Index erstellt haben, verwenden Sie den `$text`-Operator, um eine Textsuche durchzuführen. Zum Beispiel:
```javascript
db.collection.find({$text: {$search: “query”}});
```
Ersetzen Sie dabei “collection” durch den Namen Ihrer Sammlung und “query” durch den Text, den Sie suchen. Diese Abfrage gibt alle Dokumente zurück, die das Wort “query” in dem gemäß dem Index festgelegten Feld enthalten.
3. Sie können die Suche auch verfeinern, indem Sie zusätzliche Felder zur Abfrage hinzufügen. Zum Beispiel:
```javascript
db.collection.find({$text: {$search: “query”}, field2: “value”});
```
Ersetzen Sie dabei “collection” durch den Namen Ihrer Sammlung, “query” durch den zu suchenden Text und “field2” und “value” durch ein zusätzliches Feld und den Wert, den Sie abfragen möchten. Dies gibt nur Dokumente zurück, die sowohl das Wort “query” im gemäß dem Index festgelegten Feld als auch den angegebenen Wert im Feld “field2” enthalten.
Bitte beachten Sie, dass die Textsuche in MongoDB diakritische Zeichen und Stop-Wörter berücksichtigt und Stemming auf die Suchanfrage anwendet, um Wörter auf ihre Stammform zu reduzieren. Daher kann eine Suchanfrage nach “running” auch Ergebnisse für “run” zurückgeben.