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

mongodb текстово търсене с множество полета

Трябва да създадете текстов индекс за полетата, които искате да търсите:

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

От документацията на оператора $text:

$text извършва текстово търсене в съдържанието на полетата, индексирани с текстов индекс.

Индексът, който сте създали за трите си полета, е съставен индекс, а не текстов индекс. Текстовият индекс ще изглежда така:

{
    "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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Групирайте и пребройте по месеци

  2. Имената на полета FieldPath не може да съдържат „.“ в $група

  3. Mongodb заявка конкретен месец|година не дата

  4. пролетни данни - Mongodb - метод findBy за вложени обекти

  5. Извличане само на заявения елемент в масив от обекти в колекцията MongoDB