MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

mongoose index existiert bereits mit verschiedenen Optionen

Überprüfen Sie, in welchem ​​Feld Sie Ihren Textindex definiert haben. Derzeit erlaubt mongodb nur einen Textindex pro Sammlung. Wenn Sie also einen Textindex für die Spalte desc definiert haben und versuchen, diesen Index für eine andere Spalte zu verwenden, erhalten Sie zwangsläufig diesen Fehler.

können Sie versuchen, Ihren Index abzufragen und zu sehen, in welcher Spalte Sie ihn erstellt haben. Um Indizes zu erhalten, können Sie

tun
db.collection.getIndexes()

und es wird so etwas zurückgeben

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

Wenn Sie jetzt auch andere Spalten verwenden möchten, um diesen Index zu verwenden, löschen Sie einfach diesen Index

db.collection.dropIndex('desc_text');

und erstellen Sie ihn dann neu, indem Sie alle Spalten einbeziehen, die vom Textindex abgedeckt werden sollen,

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