$text
Performs full-text search on string content with support for language-specific stemming, case sensitivity, and phrase matching.
Syntax
{ $text: { $search: <string>, $language: <string>, $caseSensitive: <boolean>, $diacriticSensitive: <boolean> } }
Parameters
$search
stringrequiredThe text search string containing words or phrases to search for
$language
stringLanguage code for stemming and stop words: "en" (English), "es" (Spanish), "fr" (French), etc.
$caseSensitive
stringBoolean flag for case-sensitive search: "true" or "false" (default)
$diacriticSensitive
stringBoolean flag for diacritic-sensitive search: "true" or "false" (default)
Examples
Basic text search
Search for documents containing specific words in indexed text fields
Query:
db.stores.find({ $text: { $search: "electronics gadgets" } })
Output:
Documents containing "electronics" or "gadgets" in text-indexed fields
Phrase search
Search for exact phrases using quoted strings
Query:
db.stores.find({ $text: { $search: "\"Bed and Bath\"" } })
Output:
Documents containing the exact phrase "Bed and Bath"
Negated search terms
Exclude documents containing specific terms using minus operator
Query:
db.stores.find({ $text: { $search: "furniture -mattress" } })
Output:
Documents containing "furniture" but not "mattress"
Language-specific search
Perform text search with language-specific stemming
Query:
db.stores.find({ $text: { $search: "electronics", $language: "en" } })
Output:
Documents matching "electronics" using English language rules