sql >> Database teknologi >  >> NoSQL >> MongoDB

mongodb tekstsøgning med flere felter

Du bør oprette et tekstindeks på de felter, du vil søge i:

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

Fra dokumentationen til $text-operatøren:

$text udfører en tekstsøgning på indholdet af felterne, der er indekseret med et tekstindeks.

Det indeks, du har oprettet for dine tre felter, er et sammensat indeks, ikke et tekstindeks. Tekstindekset vil se således ud:

{
    "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. MongoDB VÆLG ANTALGRUPPE EFTER

  2. Native MongoDB-maskering (3. metode)

  3. Redis - nogen måde at udløse en hændelse, når en værdi ikke længere bliver skrevet aktivt til?

  4. Kan mongo upsert array-data?