MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

l'index de la mangouste existe déjà avec différentes options

vérifiez sur quel champ vous avez défini votre index de texte. À l'heure actuelle, mongodb n'autorise qu'un seul index de texte par collection. donc si vous avez défini un index de texte sur la colonne desc et essayez d'utiliser cet index sur une autre colonne, vous obtiendrez cette erreur.

pouvez-vous essayer d'interroger votre index et de voir sur quelle colonne vous l'avez créé. Pour obtenir des index, vous pouvez faire

db.collection.getIndexes()

et il retournera quelque chose comme ça

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

maintenant, si vous souhaitez également utiliser cet index dans d'autres colonnes, supprimez simplement cet index

db.collection.dropIndex('desc_text');

puis recréez-le en incluant toutes les colonnes que vous souhaitez couvrir par l'index de texte,

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