MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

o índice do mangusto já existe com diferentes opções


verifique em qual campo você tem seu índice de texto definido. No momento, o mongodb permite apenas um índice de texto por coleção. então, se você definiu um índice de texto na coluna desc e tentar usar esse índice em alguma outra coluna, você receberá esse erro.

você pode tentar consultar seu índice e ver em qual coluna você o criou. Para obter índices, você pode fazer
db.collection.getIndexes()

e ele retornará algo assim
[
    {
        "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
    }
]

agora, se você quiser escopo em outras colunas também para usar esse índice, basta soltar esse índice
db.collection.dropIndex('desc_text');

e, em seguida, recrie-o incluindo todas as colunas que você deseja que sejam cobertas pelo índice de texto,
db.collection.createIndex({
    title:'text;,
    body: 'text;,
    desc: 'text',
    ...... and so on
});