MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

l'indice mangusta esiste già con diverse opzioni

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
});