MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да създам текстов индекс в mongodb с golang и mgo библиотеката?

Това се поддържа в драйвера. Всичко, което трябва да направите, е да дефинирате вашите полета да бъдат индексирани като „текст“, както в $text:field .

В пълен списък:

import (
  "labix.org/v2/mgo"
)

func main() {

  session, err := mgo.Dial("127.0.0.1")
  if err != nil {
    panic(err)
  }

  defer session.Close()

  session.SetMode(mgo.Monotonic, true)

  c := session.DB("test").C("texty")

  index := mgo.Index{
    Key: []string{"$text:name", "$text:about"},
  }

  err = c.EnsureIndex(index)
  if err != nil {
    panic(err)
  }

}

Което, когато се гледа от mongo shell, ще даде:

> db.texty.getIndices()
[
    {
            "v" : 1,
            "key" : {
                    "_id" : 1
            },
            "name" : "_id_",
            "ns" : "test.texty"
    },
    {
            "v" : 1,
            "key" : {
                    "_fts" : "text",
                    "_ftsx" : 1
            },
            "name" : "name_text_about_text",
            "ns" : "test.texty",
            "weights" : {
                    "about" : 1,
                    "name" : 1
            },
            "default_language" : "english",
            "language_override" : "language",
            "textIndexVersion" : 2
    }
]



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Опция за проекция за връщане на дължина/размер на полето

  2. mongodb невъзможно (?) E11000 грешка при дублиране на ключ дублиране на ключ при качване

  3. Бази данни за документи:излишни данни, препратки и т.н. (специално MongoDB)

  4. MongoDB използва клауза ИЛИ в mongoengine

  5. Как да свържете уебсайта на Laravel с mongoDB atlas