sql >> Database >  >> NoSQL >> MongoDB

mangoestindex bestaat al met verschillende opties

controleer in welk veld u uw tekstindex hebt gedefinieerd. Op dit moment staat mongodb slechts één tekstindex per verzameling toe. dus als je een tekstindex in de desc-kolom hebt gedefinieerd en die index in een andere kolom probeert te gebruiken, krijg je deze foutmelding.

kunt u proberen uw index te doorzoeken en te zien in welke kolom u deze hebt gemaakt. Om indexen te krijgen, kunt u

db.collection.getIndexes()

en het zal zoiets als dit retourneren

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

als u nu ook in andere kolommen wilt zoeken om deze index te gebruiken, laat u deze index gewoon vallen

db.collection.dropIndex('desc_text');

en maak het vervolgens opnieuw door alle kolommen op te nemen die door de tekstindex moeten worden gedekt,

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



  1. Werkpaardproces werd onverwachts beëindigd RQ en Scrapy

  2. MapReduce-resultaten lijken beperkt tot 100?

  3. Redis - Handmatig een slave promoveren tot master

  4. Rails 4 en mongoid:bouw programmatisch een query met meerdere AND- en OR-voorwaarden