Грешката е доста точна. Това, което се опитвате да направите, е да създадете „множество текстови заявки“ в <силен>$or
състояние. MongoDB не може да направи това и всъщност е посочено в първия ред на Ограничения
в страницата с ръководство за $text
.
Освен това несе трябва за да направите това, а по-скоро посочете един текстов индекс във вашата колекция за търсене в множество полета, ако е необходимо:
db.collection.ensureIndex({ "comments": "text", "title": "text" })
И тогава вероятно искате да присвоите тегла както е показано тук .
Но изглежда всичко, което наистина искате, е да търсите „множество термини“. Така че не използвате $or
за това, но просто изпратете списъка с термини, разделени с интервали:
db.collection.find({ "$text": { "$search": "something else" } })
Всички думи в списъка, разделен с интервал, след това се търсят в контекста на всички полета в текстовия индекс и всеки документ, който съдържа „някоя“ от тези думи, ще бъде върнат. С резултатите, подредени по "тегло" на повече съвпадения на думите в този списък.