Fejlen er ret præcis. Det, du forsøger at gøre, er at oprette "flere tekstforespørgsler" inde i en
strong>$or
tilstand. MongoDB kan ikke gøre det, og det står faktisk i første linje af Begrænsninger
i manualsiden for $text
.
Desuden er du ikke formodet for at gøre det, men angiv snarere én tekstindeks på din samling for at søge på flere felter, hvis det kræves:
db.collection.ensureIndex({ "comments": "text", "title": "text" })
Og så vil du sikkert tildele vægte som vist her .
Men det lader til, at det eneste, du egentlig beder om, er at søge efter "flere termer". Så du bruger ikke en $or
for dette, men indsend blot listen over termer adskilt af mellemrum:
db.collection.find({ "$text": { "$search": "something else" } })
Alle ord i den mellemrumsseparerede liste søges derefter efter inden for konteksten af de felter, der er i tekstindekset, og ethvert dokument, der indeholder "enhver" af disse ord, vil blive returneret. Med resultaterne sorteret efter "vægt" af flere matcher af ordene på listen.