Chyba je docela přesná. To, co se snažíte udělat, je vytvořit „více textových dotazů“ uvnitř $or
stav. MongoDB to neumí a je to ve skutečnosti uvedeno v prvním řádku Omezení
na stránce manuálu pro $text
.
Navíc to předpokládám k tomu, ale raději zadejte jeden textový index ve vaší sbírce, abyste mohli v případě potřeby vyhledávat ve více polích:
db.collection.ensureIndex({ "comments": "text", "title": "text" })
A pak pravděpodobně budete chtít přiřadit váhy jak je uvedeno zde .
Ale zdá se, že vše, co opravdu požadujete, je hledat „více výrazů“. Takže nepoužíváte $or
za tímto účelem stačí odeslat seznam výrazů oddělených mezerami:
db.collection.find({ "$text": { "$search": "something else" } })
Jakákoli slova v seznamu odděleném mezerou jsou pak vyhledána v kontextu jakýchkoli polí v textovém indexu a bude vrácen jakýkoli dokument, který obsahuje „jakékoli“ z těchto slov. S výsledky seřazenými podle "váhy" více shod slov v tomto seznamu.