MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Najlepszy sposób na wyszukiwanie pełnotekstowe w MongoDB i Mongoose

Możesz dodać indeks tekstowy do definicji schematu Mongoose, który pozwoli Ci użyć $text operator w twoim find zapytania do przeszukiwania wszystkich pól zawartych w indeksie tekstowym.

Aby utworzyć indeks obsługujący wyszukiwanie tekstowe, powiedzmy name i profile.something :

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

Lub jeśli chcesz uwzględnić wszystkie pola ciągów w indeksie, użyj '$**' symbol wieloznaczny:

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

Umożliwiłoby to wykonanie wyszukiwanego tekstu stronicowanego, takiego jak:

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

Aby uzyskać więcej informacji, przeczytaj pełną dokumentację indeksów tekstowych MongoDB.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy jest jakaś opcja ograniczenia użycia pamięci mongodb?

  2. Jak zdeserializować obiekt BsonDocument z powrotem do klasy?

  3. show dbs daje błąd braku autoryzacji do wykonania polecenia

  4. Usuń wszystkie symbole inne niż utf-8 z ciągu

  5. MongoDB — filtrowanie zawartości wewnętrznej tablicy w zestawie wyników