controlla su quale campo hai definito il tuo indice di testo. Al momento mongodb consente un solo indice di testo per raccolta. quindi se hai definito un indice di testo sulla colonna desc e provi a utilizzare quell'indice su un'altra colonna, sei destinato a ricevere questo errore.
puoi provare a interrogare il tuo indice e vedere su quale colonna lo hai creato. Per ottenere gli indici puoi fare
db.collection.getIndexes()
e restituirà qualcosa del genere
[
{
"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
}
]
ora se vuoi usare l'ambito anche in altre colonne per utilizzare questo indice, rilascia semplicemente questo indice
db.collection.dropIndex('desc_text');
e quindi ricrearlo includendo tutte le colonne che desideri siano coperte dall'indice di testo,
db.collection.createIndex({
title:'text;,
body: 'text;,
desc: 'text',
...... and so on
});