sql >> Databasteknik >  >> NoSQL >> MongoDB

mongoose index finns redan med olika alternativ

kontrollera på vilket fält du har ditt textindex definierat. Just nu tillåter mongodb endast ett textindex per samling. så om du har definierat ett textindex på beskrivningskolumnen och försöker använda det indexet på någon annan kolumn är du skyldig att få det här felet.

kan du försöka fråga ditt index och se i vilken kolumn du skapade det. För att få index kan du göra

db.collection.getIndexes()

och det kommer att returnera något sånt här

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

nu om du vill omfång i andra kolumner också för att använda detta index, släpp helt enkelt detta index

db.collection.dropIndex('desc_text');

och återskapa det sedan genom att inkludera alla kolumner som du vill ska omfattas av textindex,

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



  1. Hur återanvänder man redis-anslutning i socket.io?

  2. För många öppna filer samtidigt som du säkerställer indexmongo

  3. Kan inte ansluta till MongoDB Atlas (queryTxt ETIMEOUT)

  4. Mongodbs mongodump-kommando, Javascript-exekveringsfel