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

Най-добрият начин да извършите пълно текстово търсене в MongoDB и Mongoose

Можете да добавите текстов индекс към вашата дефиниция на схемата Mongoose, който ви позволява да използвате $text оператор във вашия find заявки за търсене във всички полета, включени в текстовия индекс.

За да създадете индекс, който да поддържа текстово търсене, да речем, name и profile.something :

var schema = new Schema({
  name: String,
  email: String,
  profile: {
    something: String,
    somethingElse: String
  }
});
schema.index({name: 'text', 'profile.something': 'text'});

Или ако искате да включите всички низови полета в индекса, използвайте '$**' заместващ знак:

schema.index({'$**': 'text'});

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

MyModel.find({$text: {$search: searchString}})
       .skip(20)
       .limit(10)
       .exec(function(err, docs) { ... });

За повече подробности прочетете пълната документация за текстови индекси на MongoDB.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как мога да използвам оператора „Не харесвам“ в MongoDB

  2. Фатална грешка:Клас 'MongoDB\Driver\Manager' не е намерен

  3. Как да получите конкретен вграден документ в колекция MongoDB?

  4. Множество популации - mongoosejs

  5. Изтрийте всички символи, различни от utf-8 от низа