sql >> Databasteknik >  >> NoSQL >> MongoDB

Bästa sättet att utföra en fulltextsökning i MongoDB och Mongoose

Du kan lägga till ett textindex till din Mongoose-schemadefinition som låter dig använda $text operatorn i din find frågor för att söka i alla fält som ingår i textindexet.

För att skapa ett index som stödjer textsökning på, säg name och profile.something :

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

Eller om du vill inkludera alla strängfält i indexet, använd '$**' jokertecken:

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

Detta skulle göra det möjligt för dig att utföra en sökfråga med sökt text som:

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

För mer information, läs hela MongoDB Text Indexes dokumentation.




  1. kan inte döda redis-server på linux

  2. Uppdatera ett värde i MongoDB baserat på dess nuvarande värde

  3. Jämför matriser och returnera skillnaden

  4. Hur man fixar sneda hash-slots i Redis