sql >> Base de Datos >  >> NoSQL >> MongoDB

el índice de mangosta ya existe con diferentes opciones

compruebe en qué campo tiene definido su índice de texto. En este momento, mongodb permite solo un índice de texto por colección. por lo tanto, si ha definido un índice de texto en la columna de descripción e intenta usar ese índice en alguna otra columna, seguramente obtendrá este error.

¿Puede intentar consultar su índice y ver en qué columna lo creó? Para obtener índices puedes hacer

db.collection.getIndexes()

y devolverá algo como esto

[
    {
        "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
    }
]

ahora, si desea abarcar otras columnas también para usar este índice, simplemente suelte este índice

db.collection.dropIndex('desc_text');

y luego vuelva a crearlo incluyendo todas las columnas que desea que estén cubiertas por el índice de texto,

db.collection.createIndex({
    title:'text;,
    body: 'text;,
    desc: 'text',
    ...... and so on
});