sql >> Databasteknik >  >> NoSQL >> MongoDB

mongodb textsökning med flera fält

Du bör skapa ett textindex på de fält du vill söka i:

db.deals.ensureIndex({ name: "text", description : "text", category : "text" });

Från dokumentationen för $text-operatorn:

$text utför en textsökning på innehållet i fälten som är indexerade med ett textindex.

Indexet du skapade för dina tre fält är ett sammansatt index, inte ett textindex. Textindexet kommer att se ut så här:

{
    "v" : 1,
    "key" : {
        "_fts" : "text",
        "_ftsx" : 1
    },
    "name" : "name_text_description_text_category_text",
    "ns" : "test.deals",
    "weights" : {
        "category" : 1,
        "description" : 1,
        "name" : 1
    },
    "default_language" : "english",
    "language_override" : "language",
    "textIndexVersion" : 2
}



  1. Få alla python-rom-objekt i en lista

  2. Redis och Memcache eller bara Redis?

  3. Nodejs / Express - Att starta min app:express.createServer() är utfasad

  4. Implementerar jag serialisera och deserialisera NodesJS + Passport + RedisStore?