sprawdź, w którym polu masz zdefiniowany indeks tekstowy. Obecnie mongodb pozwala tylko na jeden indeks tekstowy na kolekcję. więc jeśli zdefiniowałeś indeks tekstowy w kolumnie desc i spróbujesz użyć tego indeksu w innej kolumnie, na pewno otrzymasz ten błąd.
czy możesz spróbować wysłać zapytanie do indeksu i zobaczyć, w której kolumnie go utworzyłeś. Aby uzyskać indeksy, możesz zrobić
db.collection.getIndexes()
i zwróci coś takiego
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "some.ns"
},
{
"v" : 1,
"key" : {
"_fts" : "text",
"_ftsx" : 1
},
"name" : "desc_text",
"ns" : "some.ns",
"weights" : {
"title" : 1
},
"default_language" : "english",
"language_override" : "language",
"textIndexVersion" : 2
}
]
teraz jeśli chcesz objąć zakresem również inne kolumny, aby użyć tego indeksu, po prostu upuść ten indeks
db.collection.dropIndex('desc_text');
a następnie utwórz go ponownie, włączając wszystkie kolumny, które mają być objęte indeksem tekstowym,
db.collection.createIndex({
title:'text;,
body: 'text;,
desc: 'text',
...... and so on
});