Felet är ganska exakt. Det du försöker göra är att skapa "flera textfrågor" i en
strong>$or
skick. MongoDB kan inte göra det och det står faktiskt i den första raden av Begränsningar
i manualsidan för $text
.
Dessutom är du inte förmodad för att göra det, utan ange hellre en textindex på din samling för att söka i flera fält om det behövs:
db.collection.ensureIndex({ "comments": "text", "title": "text" })
Och då vill du förmodligen tilldela vikter som visas här .
Men det verkar som att allt du egentligen frågar är att söka efter "flera termer". Så du använder inte en $or
för detta, men skicka bara in listan med termer separerade med mellanslag:
db.collection.find({ "$text": { "$search": "something else" } })
Alla ord i den blankstegsavgränsade listan söks sedan efter inom ramen för de fält som finns i textindexet, och alla dokument som innehåller "något" av dessa ord kommer att returneras. Med resultaten sorterade efter "vikt" av fler matchningar av orden i den listan.